ΠΠ°ΠΉΠΊΡΠ» Π‘Π²ΠΈΡ (Michael R Sweet), Π°Π²ΡΠΎΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΠ΅ΡΠ°Ρ CUPS, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π²Π΅ΡΡΠΈΡ PAPPL 1.3, ΡΠ°ΠΌΠΊΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΠ΅ΡΠ°Ρ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IPP Everywhere, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0 Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ ΠΊΠΎΠ΄, Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ΄ GPLv2 ΠΈ LGPLv2.
Π Π°ΠΌΠΊΠ°ΡΠ° PAPPL Π΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΠ΅ΡΠ°Ρ LPrint ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Gutenprint, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ°Ρ Π½Π° Π½Π°ΡΡΠΎΠ»Π½ΠΈ, ΡΡΡΠ²ΡΡΠ½ΠΈ ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ PAPPL ΡΠ΅ ΡΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° IPP Everywhere Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΈ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° IPP, ΠΊΠ°ΡΠΎ AirPrint ΠΈ Mopria.
PAPPL Π²ΠΊΠ»ΡΡΠ²Π° Π²Π³ΡΠ°Π΄Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IPP Everywhere, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΡΠΈΠ½ΡΠ΅ΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΠΌΡΠ΅ΠΆΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΏΠ΅ΡΠ°Ρ. IPP Everywhere ΡΠ°Π±ΠΎΡΠΈ Π² Π±Π΅Π·Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ 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 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π±Π°Π½Π΅Ρ Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΡΠ΅Π± ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ API Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΡΠ΅Π· callback-Π²ΠΈΠΊ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ API Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ° JPEG ΠΈ PNG.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Ρ Clang/GCC Π² ΡΠ΅ΠΆΠΈΠΌ ThreadSanitizer (-enable-tsanitizer).
- Π ΠΏΠΎΠ»Π΅ΡΠΎ Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»Π°ΡΠ° Π·Π° Wi-Fi Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π±ΡΡΠΎΠ½ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»Π°ΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
