Michael R Sweet, autor systemu druku CUPS, zaprezentował wydanie PAPPL 1.3, frameworka do tworzenia aplikacji do druku opartego na protokole IPP Everywhere, który zaleca się stosować zamiast tradycyjnych sterowników do drukarek. Kod frameworka został napisany w języku C i jest rozpowszechniany na licencji Apache 2.0 z wyjątkiem, który pozwala na powiązanie z kodem na licencjach GPLv2 i LGPLv2.
Framework PAPPL został pierwotnie zaprojektowany do wsparcia systemu drukowania LPrint i sterowników Gutenprint, ale może być używany do implementacji wsparcia dla dowolnych drukarek i sterowników podczas drukowania na systemach stacjonarnych, serwerowych oraz wbudowanych. Zakłada się, że PAPPL przyczyni się do przyspieszenia wdrażania technologii IPP Everywhere zamiast klasycznych sterowników oraz uproszczenia wsparcia dla innych programów opartych na IPP, takich jak AirPrint i Mopria.
PAPPL zawiera wbudowaną implementację protokołu IPP Everywhere, która zapewnia środki do lokalnego lub sieciowego dostępu do drukarek i obsługi żądań drukowania. IPP Everywhere działa w trybie bezsterownikowym („driverless”) i w przeciwieństwie do sterowników PPD nie wymaga tworzenia statycznych plików konfiguracyjnych. Wspierana jest interakcja z drukarkami zarówno bezpośrednio przez lokalne połączenie przez USB, jak i poprzez sieć za pomocą protokołów AppSocket i JetDirect. Dane mogą być przesyłane do drukarki w formatach JPEG, PNG, PWG Raster, Apple Raster i „raw”.
PAPPL może być kompilowany dla systemów operacyjnych zgodnych z POSIX, w tym Linux, macOS, QNX i VxWorks. Wśród zależności należy wymienić Avahi (do obsługi mDNS/DNS-SD), CUPS, GNU TLS, JPEGLIB, LIBPNG, LIBPAM (do autoryzacji) oraz ZLIB. Na bazie PAPPL projekt OpenPrinting rozwija uniwersalną aplikację PostScript Printer Application, która może współpracować zarówno z nowoczesnymi drukarkami zgodnymi z IPP (używającymi PAPPL), które obsługują PostScript i Ghostscript, jak i ze starszymi drukarkami, dla których dostępne są sterowniki PPD (stosowane są filtry cups-filters i libppd).
Wśród zmian w nowej wersji:
- Dodana możliwość wstrzymywania i wznawiania zadań związanych z drukowaniem.
- Dodano prowadzenie logu debugowania dla operacji zarządzania urządzeniami.
- Dodano wsparcie dla skalowania obrazów PNG, wykorzystując wbudowane informacje o rozdzielczości.
- Umożliwiono wyświetlanie zlokalizowanego banera na górze stron internetowych z informacjami o drukarce i systemie.
- Dodano API do zarządzania uruchamianiem cyklicznie wykonywanych zadań.
- Wdrożono możliwość konfiguracji sieci za pomocą wywołań zwrotnych.
- Dodano API do ograniczania maksymalnych rozmiarów obrazów JPEG i PNG.
- Dodano wsparcie dla kompilacji w Clang/GCC w trybie ThreadSanitizer (-enable-tsanitizer).
- W polu wprowadzania hasła do Wi-Fi dodano przycisk do wyświetlania hasła.
Źródło: opennet.ru
