QVINTVS · SCRIBET

ruby-xz 1.0.0 veröffentlicht

Ich habe ruby-xz 1.0.0, Ruby-Bindings für liblzma, veröffentlicht.

Bei ruby-xz handelt es sich um Ruby-Bindings für die C-Programmbibliothek liblzma. liblzma ihrerseits ist die Programmbibliothek hinter dem Kommandozeilenwerkzeug xz(1). Das letzte Mal hatte ich vor einigen Jahren an ruby-xz gearbeitet, die letzte veröffentlichte Version 0.2.3 stammte von 2015.

Die neue Version 1.0.0 nun streicht die Rückwärtskompatibilität und ersetzt die bisherigen, etwas mühsam zu bedienenden APIs durch moderne. So werden jetzt etwa statt langer Argumenten-Listen Rubys neue Schlüsselwort-Parameter benutzt. Die StreamReader- und StreamWriter-APIs wurden weitestgehend Rubys eigener zlib-Programmbibliothek angepaßt. Eine weitere wichtige Änderung betrifft den Umgang mit Zeichenkodierungen: hatte ruby-xz bislang immer nur Strings mit dem Encoding-Tag „BINARY“ ausgelesen, trägt die Programmbibliothek nunmehr Rubys System von externem und internem Programm-Encoding Rechnung. Speziell diese Änderung dürfte zu Kompatibilitätsproblemen führen, jedoch hat mittlerweile selbst zlib aus der stdlib dieses System übernommen.

„Extern“ in diesem Sinne ist die Zeichenkodierung, die von den Daten innerhalb des XZ-Formats (also den komprimierten Daten) benutzt wird. Die XZ-Datei selbst ist selbstverständlich nach wie vor ein reiner Binärblob und kann dementsprechend auch nur als BINARY-String verarbeitet werden.

Im Zusammenhang mit der neuen Version habe ich das Hosting von GitHub auf meinen eigenen Webserver umgezogen. GitHub wird allerdings weiterhin für das Ticketsystem benutzt.

ruby-xz 1.0.0 kann via RubyGems installiert werden. Der Quellcode kann über mein Gitweb betrachtet werden und per git clone von meinem Server heruntergeladen werden:

$ git clone git://git.guelker.eu/ruby-xz.git

Valete.