Πώπω, θυμήθηκα τα νιάτα μου! Arj, ο βασιλειάς του compression λίγο πριν βγει το rar! Γιαπωνέζικος αλγόριθμος ο οποίος βασίλεψε για ένα πολύ σύντομο διάστημα και εξαφανίστηκε λίγο μετά τα Windows 95. Τον έφαγαν το rar και το ταχύτατο WinZip.
Ο Mitsaras έχει δίκιο. Εκτός και αν έχεις κάποιες ειδικές απαιτήσεις είναι παράλογο να χρησιμοποιήσεις τον ARJ. Το Zip/GZip χρησιμοποιούνται απ' όλους, η συμπίεση που κάνουν είναι επαρκής για κάθε χρήση και θα βρεις αρκετές έτοιμες υλοποιήσες οι οποίες μπορούν να καλύψουν κάθε απαίτηση, με διαφορετικές απαιτήσεις μνήμης και ταχύτητας.
Αλήθεια, τί θέλεις να κάνεις? Αν μας πεις τί θέλεις να κάνεις θα μπορέσουμε να σου πούμε εναλλακτικές λύσεις. Π.χ. "θέλω ένα απλό και εύκολο τρόπο να αποθηκεύω αρχεία στο σκληρό", "θέλω να στείλω πληροφορίες σε άλλο σύστημα σε αργή γραμμή", "θέλω να στείλω πληροφορίες μέσω δορυφόρου", "θέλω να αποθηκεύσω εικόνες/τραγούδια στη βάση", "θέλω να στείλω μεγάλο όγκο δεδομένων μέσω web service" κλπ. Κάθε περίπτωση έχει διαφορετικές απαντήσεις, ενώ πολλές φορές το λειτουργικό σου δίνει έτοιμη την απάντηση.
Για παράδειγμα, από τα Windows 2000 και μετά μπορείς να αποθηκεύσεις συμπιεσμένα ή κρυπτογραφημένα αρχεία στο σκληρό. Το ίδιο πλέον και ο SQL Server. Ο IIS μπορεί να στείλει συμπιεσμένα δεδομένα στον browser μέσω GZip. Εικόνες και ήχος μπορούν να συμπιεστούν καλύτερα με διάφορες τεχνικές lossy/lossless συμπίεσης με καλύτερα αποτελέσματα από το Zip/Arj/Rar. Τέλος, σε περίπτωση που θέλεις να στείλεις αλλαγές σε μία βάση ή αρχεία ή γενικά κατάσταση ενός συστήματος, αντί να στείλεις όλα τα στοιχεία μπορείς να στείλεις τη διαφορά μεταξύ παλιάς και νέας κατάστασης - συμπιεσμένη βέβαια.
Ρίξε και μία ματιά στις εμπορικές υλοποιήσεις του Zip όπως π.χ. το IPWorks Zip της nSoftware οι οποίες χρησιμοποιούν γρήγορες multi-threaded υλοποιήσεις. Μπορείς κι εσύ βέβαια να πετύχεις παρόμοια αποτελέσματα χρησιμοποιώντας τα τελευταία SSE assembly instructions, αλλά σίγουρα θα κοστίσει περισσότερο από το να αγοράσεις έτοιμη μία καλή βιβλιοθήκη.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos