ΠΠ°ΠΉΠΊΠ» Π‘Π²ΠΈΡ (Michael R Sweet), Π°Π²ΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ°ΡΠΈ CUPS, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» Π²ΡΠΏΡΡΠΊ PAPPL 1.3, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IPP Everywhere, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΎΠ². ΠΠΎΠ΄ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0 Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΌΠΈ GPLv2 ΠΈ LGPLv2.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ PAPPL Π±ΡΠ» ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ°ΡΠΈ LPrint ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Gutenprint, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π»ΡΠ±ΡΡ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΎΠ² ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ , ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ PAPPL ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ IPP Everywhere Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ IPP, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ AirPrint ΠΈ Mopria.
PAPPL Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IPP Everywhere, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ Π²ΡΠ²ΠΎΠ΄Ρ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ. IPP Everywhere ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π±Π΅Π·Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ («driverless») ΠΈ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² PPD Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°ΠΌΠΈ ΠΊΠ°ΠΊ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ΅ΡΠ΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° ΠΏΠΎ USB, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² AppSocket ΠΈ JetDirect. ΠΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΠ΅Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ JPEG, PNG, PWG Raster, Apple Raster ΠΈ «raw».
PAPPL ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ±ΡΠ°Π½ Π΄Π»Ρ POSIX-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΠΠ‘, Π²ΠΊΠ»ΡΡΠ°Ρ Linux, macOS, QNX ΠΈ VxWorks. ΠΠ· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Avahi (Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ) ΠΈ ZLIB. ΠΠ° Π±Π°Π·Π΅ PAPPL ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ OpenPrinting ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PostScript Printer Application, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ IPP-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°ΠΌΠΈ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ PAPPL), ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌΠΈ PostScript ΠΈ Ghostscript, ΡΠ°ΠΊ ΠΈ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°ΠΌΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ PPD (ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΈΠ»ΡΡΡΡ cups-filters ΠΈ libppd).
Π‘ΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡ ΠΏΠΎ Π²ΡΠ²ΠΎΠ΄Ρ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³Π° Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ PNG-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π°Π½Π½Π΅ΡΠ° Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ web-ΡΡΡΠ°Π½ΠΈΡ ΡΠΎ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΎ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ΅ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ API Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π·Π°Π΄Π°Ρ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠΈ ΡΠ΅ΡΠ΅Π· callback-Π²ΡΠ·ΠΎΠ²Ρ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ API Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ JPEG ΠΈ PNG.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ Π² Clang/GCC Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ThreadSanitizer (-enable-tsanitizer).
- Π ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ Wi-Fi Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru