Coffeearc

Coffeearc ist ein Multiformat Archiver, der im Rahmen eines privaten Projekts enstand, um experimentelle Kommandozeilen Kompressionstools sehr einfach als Plugins einzubinden und damit mehr Funktionalität und Benutzerfreundlichkeit im Sinne eines vollwertigen Archivertools zu schaffen. Experimentelle Kompressionstools können häufig nur einzelne Dateien packen und entpacken. In Verbindung mit Coffeearc bieten sich jedoch ohne größeren Aufwand viele weitere Features, sobald das Tool eingebunden ist. Dies geschieht durch erstellen einer sehr einfachen XML Spezifikation.

Techniken und Features:

  • XML basiertes Plugin-System zur Kommando Definition und GUI Konfiguration.
  • Typischer Archiver Funktionalität
    • Archive anlegen, entpacken, öffnen und ändern (Dateien hinzufügen oder löschen). Speicherung zusätzlicher Daten wie z.B. Prüfsummen und Dateiattribute.
    • Solid archiving: Dateien werden sortiert und in größere Blöcke zusammengefasst, bevor sie komprimiert werden. Dies kann die Packrate deutlich verbessern, insbes. bei Kompression vieler kleiner Dateien.
    • Verschlüsselung: Archive können mit bis zu 256 Bit (AES) verschlüsselt werden.
    • Multithreading: Coffeearc kann mit bis zu 8 Prozessen gleichzeitig packen und damit die Packgeschwindigkeit deutlich erhöhen.
    • Pipes: Wenn das Kompressionstool dazu in der Lage ist, verwendet Coffeearc den Standard Input- /Outputstream für den Datentransfer. Dadurch werden weniger temporäre Dateien benötigt.
  • Bereitstellung einer sehr einfachen Java API zur Programmierung neuer Kompressionsalgorithmen.
  • Wahlweise sehr hohe oder schnelle Kompressionsverfahren durch Einbindung von zwei besonderen Kompressionstools (CCM und Slug).
  • Unterstützung einiger Standard Archivtypen (z.B. ZIP, TAR.GZ, BZ2).
  • Drag and Drop Unterstützung zur einfachen Erstellung von Dateilisten.

Hauptfenster von Coffeearc (links: Dateiexplorer, mitte: Dateiliste des Archivs, rechts: Profile und Eintellungen):

Beispiel einer XML Spezifikaton, die GUI Elemente für ein Profil erzeugt:

<gui name="Mode" type="radio">
  <option label="Fast">
    <replace key="%opt1" with="-f"/>
  </option>
  <option label="Normal" default="yes">
    <replace key="%opt1" with="-n"/>
  </option>
  <option label="Strong">
    <replace key="%opt1" with="-s"/>
  </option>
</gui>

<gui name="Misc" type="check">
   <option label="Debug">
     <replace key="%opt2" with="-d"/>
   </option>
   <option label="Information" selected="yes">
     <replace key="%opt2" with="-i"/>
   </option>
</gui>

<gui name="Many" type="combo">
   <option label="Another option 1">
<replace key="%opt3" with="-a:1"/></option>
   <option label="Another option 2" default="yes"><replace key="%opt3" with="-b:2"/></option>
   <option label="Another option 3"><replace key="%opt3" with="-c:3"/></option>
</gui>

In den XML Tags werden zum einen die Art der GUI Elemente festgelegt (z.B. Checkbox oder Radiobutton). Zum anderen wird mittels Platzhalter definiert, welche Parameter bei Selektion einer Option an das Kompressionstool übergeben werden.

Ansicht der Profil-GUI, die durch den obigen XML Code erzeugt wird:

Coffeearc ist ein Open-Source Projekt und wurde unter GPL Lizenz veröffentlicht. Projektseite: http://sourceforge.net/projects/coffeearc/

Siehe auch: http://www.softpedia.com/get/PORTABLE-SOFTWARE/Compression-Tools/Coffeearc.shtml

Blog

NanoNet - simple Java neural network library
Using backpropagation and sigmoid activation function. | 4/14/2019

NanoNet is a very simple Java neural network library using backpropagation and sigmoid ... Read More

Java async/await nonblocking code library
Write sequential style nonblocking code using a fixed threadpool with Async-Complete for Java | 4/1/2019

Async-Complete (aka Async-Await) is a library for writing asynchronous code in a more ... Read More

SDCLib/J contribution fork
Contributing to IEEE 11073 SDC Family java webservice stack | 2/2/2019

As former main author of the official project in my last job at SurgiTAIX AG, I will maintain ... Read More

More Blog Entries