All Projects → Fytex → Shafa-CD

Fytex / Shafa-CD

Licence: Apache-2.0 license
File Compressor written in C using both Shannon Fano and RLE algorithms

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to Shafa-CD

Etl
Blazing-fast Expression Templates Library (ETL) with GPU support, in C++
Stars: ✭ 190 (+691.67%)
Mutual labels:  matrix
Nio
💬 Nio is an upcoming matrix client for iOS.
Stars: ✭ 235 (+879.17%)
Mutual labels:  matrix
eigen-js
⚡ Eigen-js is a port of the Eigen C++ linear algebra library
Stars: ✭ 78 (+225%)
Mutual labels:  matrix
Mxisd
Federated Matrix Identity Server
Stars: ✭ 194 (+708.33%)
Mutual labels:  matrix
Maubot
A plugin-based Matrix bot system.
Stars: ✭ 226 (+841.67%)
Mutual labels:  matrix
Syphon
⚗️ a privacy centric matrix client
Stars: ✭ 245 (+920.83%)
Mutual labels:  matrix
Md max72xx
LED Matrix Library
Stars: ✭ 186 (+675%)
Mutual labels:  matrix
python
A Python 3 asyncio Matrix framework.
Stars: ✭ 115 (+379.17%)
Mutual labels:  matrix
Tmatrix
Terminal based replica of the digital rain from The Matrix.
Stars: ✭ 227 (+845.83%)
Mutual labels:  matrix
codebrowser
Woboq CodeBrowser
Stars: ✭ 985 (+4004.17%)
Mutual labels:  clang
Peroxide
Rust numeric library with R, MATLAB & Python syntax
Stars: ✭ 191 (+695.83%)
Mutual labels:  matrix
Mathnet Numerics
Math.NET Numerics
Stars: ✭ 2,688 (+11100%)
Mutual labels:  matrix
Pygraphblas
GraphBLAS for Python
Stars: ✭ 252 (+950%)
Mutual labels:  matrix
Correlation
🔗 Methods for Correlation Analysis
Stars: ✭ 192 (+700%)
Mutual labels:  matrix
eigen
Owl's OCaml Interface to Eigen3 C++ Library
Stars: ✭ 30 (+25%)
Mutual labels:  matrix
Github Matrix
The GitHub Matrix
Stars: ✭ 187 (+679.17%)
Mutual labels:  matrix
Blasjs
Pure Javascript manually written 👌 implementation of BLAS, Many numerical software applications use BLAS computations, including Armadillo, LAPACK, LINPACK, GNU Octave, Mathematica, MATLAB, NumPy, R, and Julia.
Stars: ✭ 241 (+904.17%)
Mutual labels:  matrix
PyGLM
Fast OpenGL Mathematics (GLM) for Python
Stars: ✭ 167 (+595.83%)
Mutual labels:  matrix
Huffman-Coding
A C++ compression program based on Huffman's lossless compression algorithm and decoder.
Stars: ✭ 81 (+237.5%)
Mutual labels:  decompressor
contentful-reference-matrix-field-app
Contentful App that adds UI for a table-like list of references with other associated data.
Stars: ✭ 28 (+16.67%)
Mutual labels:  matrix

GitHub top language

What is Shafa?

Shafa is a free and open-source program made for Lossless files' compression written in C (2020/21).
It is OS independent and some modules are multithread executed if running on Windows or POSIX-compliant (allowing pthreads).

Uses two algorithms for compression:

  • RLE
  • Shannon Fano with blocks of length 1 (K=1).

For RLE's decompression a .freq file is needed along with the .rle file.
For Shannon Fano's decompression a .cod file is needed along with .shaf.
(All these files are generated by the program)

Modules:

  • F ( RLE compression and Frequencies calculation )
  • T ( Codes calculation using Shannon-Fano's algorithm )
  • C ( Shannon-Fano compression )
  • D ( RLE and Shannon-Fano decompression )

SETUP - *NIX

gcc -o shafa $(find ./src -name '*.c' -or -name '*.h') -O3 -Wno-format -pthread

SETUP - WINDOWS

gcc -o shafa src/*.c src/*.h src/*/*.c src/*/*.h src/*/*/*.c src/*/*/*.h -O3 -Wno-format

How to execute?

Open terminal where the created executable shafa is located and type the following:

Windows:

  • shafa.exe <file> <options>

*NIX:

  • ./shafa <file> <options>

CLI Options:

-m <module>      :  Executes respective module (Can be executed more than one module if possible)
-b <K/m/M>       :  Blocks size for compression (default: K)
-c <r/f>         :  Forces execution (r -> RLE's compress | f -> Original file's frequencies)
-d <s/r>         :  Only executes a specific decompression (s -> Shannon-Fano's algorithm | r -> RLE's algorithm)
--no-multithread :  Disables multithread 

Blocks Size:

  • K = 640 KiB
  • m = 8 MiB
  • M = 64 MiB

Note: Multithread was only implemented in modules C and D (the ones that cost the most)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].