Michael R Sweet, Π°Π²ΡΠΎΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΠ΅ΡΠ°Ρ CUPS, ΠΎΠ±ΡΠ²ΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° PAPPL 1.2, ΡΠ°ΠΌΠΊΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΠ΅ΡΠ°Ρ IPP Everywhere, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° ΠΏΡΠΈΠ½ΡΠ΅Ρ. ΠΠΎΠ΄ΡΡ Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° Apache 2.0 Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ΅ GPLv2 ΠΈ LGPLv2.
Π‘ΡΠ΅Π΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π·Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ, ΡΡΠ΅Π½ΡΠΊΠΈ, Π½Π΅ΠΌΡΠΊΠΈ, ΠΈΡΠ°Π»ΠΈΠ°Π½ΡΠΊΠΈ, ΡΠΏΠΎΠ½ΡΠΊΠΈ ΠΈ ΠΈΡΠΏΠ°Π½ΡΠΊΠΈ.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° macOS. ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π³ΠΎΡΠ½ΠΎΡΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ ΠΌΠ΅Π½Ρ Π½Π° macOS. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΠ΅ΡΠ°Ρ Π² ΡΡΡΠ²ΡΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»Π°ΡΠΈΡ ΠΏΡΠΈ ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π°Π½Π΅ Π½Π° JPEG ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° papplJobFilterImage Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ anti-aliasing.
- ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈ ΡΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IPP (Internet Printing Protocol) ΠΈ ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ API: papplDeviceGetSupplies Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½ΠΈΠ²Π°ΡΠ° Π½Π° ΠΌΠ°ΡΡΠΈΠ»ΠΎ ΠΈ ΡΠΎΠ½Π΅Ρ, papplSystemAddEvent/papplSubscriptionXxx Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° IPP ΠΈΠ·Π²Π΅ΡΡΠΈΡ, papplSystemGet/SetMaxClients Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π±ΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° IPP Π°ΡΡΠΈΠ±ΡΡΠ° βprinter-is-accepting-jobsβ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ papplPrinterDisable ΠΈ papplPrinterEnable.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° Π»ΠΈΡΡΠ° Π² ΠΌΠΈΠ»ΠΈΠΌΠ΅ΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° OpenSSL ΠΈ LibreSSL Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠ΄ Π½Π° USB Gadget, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° USB ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΎΡΡΡΠ΅ΡΠ½Π° ΡΠΈΠΌΡΠ»Π°ΡΠΈΡ Π½Π° USB ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ ΠΊΡΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° ΡΡΡ ΡΠΏΡΠ»Π° Π·Π° ΠΏΠ΅ΡΠ°Ρ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libcups3.
Π Π°ΠΌΠΊΠ°ΡΠ° PAPPL ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΠ΅ΡΠ°Ρ LPrint ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Gutenprint, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΈΠ½ΡΠ΅Ρ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ°Ρ Π½Π° Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ, ΡΡΡΠ²ΡΡΠΈ ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΡΠ°ΠΊΠ²Π° ΡΠ΅ PAPPL Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΠ° Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° IPP Everywhere ΡΠΏΡΡΠΌΠΎ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΈ Π΄Π° ΡΠ»Π΅ΡΠ½ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° IPP ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΊΠ°ΡΠΎ AirPrint ΠΈ Mopria.
PAPPL Π²ΠΊΠ»ΡΡΠ²Π° Π²Π³ΡΠ°Π΄Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IPP Everywhere, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΏΠ΅ΡΠ°Ρ. IPP Everywhere ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Π±Π΅Π· Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΈ, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ PPD Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅, Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠ°ΠΊΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ΅Π· Π²ΡΡΠ·ΠΊΠ° Ρ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΡΠΈΠ½ΡΠ΅Ρ ΡΡΠ΅Π· USB, ΡΠ°ΠΊΠ° ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ² Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ AppSocket ΠΈ JetDirect. ΠΠ°Π½Π½ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΊΡΠΌ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° Π² JPEG, PNG, PWG ΡΠ°ΡΡΠ΅ΡΠ½ΠΈ, Apple ΡΠ°ΡΡΠ΅ΡΠ½ΠΈ ΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ.
PAPPL ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π·Π° POSIX-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Linux, macOS, QNX ΠΈ VxWorks. ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Avahi (Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅) ΠΈ ZLIB. ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° PAPPL, ΠΏΡΠΎΠ΅ΠΊΡΡΡ OpenPrinting ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΈΠ½ΡΠ΅Ρ PostScript, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΡΠΎ Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ IPP-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΎΡ PAPPL), ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ PostScript ΠΈ Ghostscript, ΡΠ°ΠΊΠ° ΠΈ Ρ ΠΏΠΎ-ΡΡΠ°ΡΠΈ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ PPD Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΡΠ°ΡΠΈ-ΡΠΈΠ»ΡΡΠΈ ΠΈ libppd ΡΠΈΠ»ΡΡΠΈ ).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru