📜Geschichte & Lizenz

„Scanner Access Now Easy“ – und die Hoffnung, dass die Schnittstelle auch im Wortsinn sane (vernünftig) ist. Seit 1996 ist SANE der Standard für Scanner unter Linux und anderen Unix-Systemen.

🕰️Zeitleiste

  1. 27.11.1996

    Erste Veröffentlichung

    David Mosberger-Tang und Andreas Beck veröffentlichen SANE 0.1 – eine Scanner-API, die Bedienung und Treiber trennt und Scannen übers Netz von Anfang an vorsieht.

  2. Ende der 1990er

    SANE 1.00

    Die API erreicht Major-Version 1. Frontends und Backends aus verschiedenen Versionen passen zusammen, solange die Major-Version gleich ist – das gilt bis heute.

  3. 06.03.2000

    sane-backends 1.0.2

    Aliase und versteckte Geräte (dll.aliases), ADF-Unterstützung in scanimage, das Hilfsskript sane-config.

  4. 2000er

    Viele Backends

    Von SCSI über Parallelport zu USB: die Community schreibt Backends für hunderte Modelle, oft durch Analyse des USB-Verkehrs. Das test-Backend (Henning Meier-Geinitz) hilft Frontend-Entwicklern.

  5. 02.02.2020

    sane-backends 1.0.29

    Neues escl-Backend für treiberloses Scannen (AirPrint-Geräte), Aufzeichnen und Abspielen von USB-Verkehr, Zeitstempel in Debug-Ausgaben.

  6. 18.01.2022

    sane-backends 1.1.1

    Die Versionsnummern springen von 1.0.x auf 1.1.x – die API bleibt SANE 1.

  7. 11.05.2025

    sane-backends 1.4.0

    Aktuellste Version laut NEWS-Datei beim Erstellen dieser Seite; u. a. weitere geprüfte eSCL-Geräte.

📄Der Standard

Das Dokument „SANE Standard Version 1.06“ beschreibt die Umgebung (Bildformat, Rahmen), die C-API mit 14 Funktionen, Code-Flow, Well-Known Options und das Netzwerkprotokoll. Ein Entwurf für SANE 2 wurde nie verabschiedet.

Versionen werden als SANE_VERSION_CODE(major, minor, build) in ein 32-Bit-Wort gepackt: Major und Minor je 8 Bit, Build 16 Bit. Nur die Major-Version entscheidet über Kompatibilität.

SANE_VERSION_CODE(1, 0, 28)

 31      24 23      16 15                0
┌──────────┬──────────┬──────────────────┐
│ 00000001 │ 00000000 │ 0000000000011100 │
└──────────┴──────────┴──────────────────┘
   major 1    minor 0      build 28

= 0x0100001C = 16 777 244

⚖️Lizenz: drei Teile, drei Regeln

💡 Frontends
Programme wie scanimage stehen unter der GNU GPL.
✅ Backends
Die meisten Backends stehen unter der GPL mit SANE-Ausnahme: Man darf gegen sie linken, ohne dass sich der Lizenzstatus des eigenen Programms ändert. Nicht alle Backends nutzen die Ausnahme.
⚠️ API und Protokoll
Die im Standard beschriebene API und das Netzwerkprotokoll gelten als gemeinfrei (public domain) – jeder darf sie beliebig implementieren, auch in unfreier Software.

Eine Umstellung auf die LGPL ist laut FAQ des Projekts praktisch unmöglich: Alle Rechteinhaber müssten zustimmen, und manche ursprünglichen Autoren sind nicht mehr erreichbar.

📚Quellen

  • sane-project.org – Einführung, Lizenz, Liste unterstützter Geräte
  • SANE Standard Version 1.06 (sane-project.gitlab.io/standard)
  • Manpages scanimage(1), saned(8), sane-net(5), sane-dll(5), sane-test(5)
  • sane-backends: NEWS-Datei, Quelltext backend/test.c und include/sane/sane.h
  • sane-airscan (Alexander Pevzner) – README; Mopria eSCL-Spezifikation
  • Microsoft-Dokumentation zu WIA und WSD, TWAIN Working Group