Skip to content

an error/erasure code system guarding data integrity

License

Notifications You must be signed in to change notification settings

mrbenjadmin/xpar

 
 

Repository files navigation

xpar

xpar - an error/erasure code system guarding data integrity. Licensed under the terms of GNU GPL version 3 or later - see COPYING. Report issues to Kamila Szewczyk [email protected]. Project homepage: https://github.com/kspalaiologos/xpar

xpar in joint mode generates a slightly inflated (by about 12%) parity-guarded file from a given data file. Such a file can be recovered as long as no more than about 6.2% of the data is corrupted. xpar internally uses a (255,223)-RS code over an 8-bit Galois field.

Building

# If using a git clone (not needed for source packages), first...
$ ./bootstrap

# All...
$ ./configure
$ make
$ sudo make install

Usage

Consult the man page.

Disclaimer

The file format will change until the stable version v1.0 is reached. Do not use xpar for critical data, do not expect backwards or forwards compatibility until then.

Development

A rough outline of some development-related topics below.

Roadmap

  • Need to implement the parallel variant.
  • 32- vs 64-bit code: determine if there's any compatibility issues.
  • Speed up the joint mode encoder loop (basically a LFSR).
  • Should probably not pad to the full interlacing block size.
  • Add assembly routines for hot spots in the program.

Repository management

As it stands:

  • contrib/ - holds scripts and other non-source files that are not present in the distribution tarball and not supported.
  • NEWS - will contain the release notes for each release and needs to be modified before each release.
  • ChangeLog - generated via make update-ChangeLog; intended to be re-generated before each release.

Code style:

  • Two space indent, brace on the same line, middle pointers - char * p;.

About

an error/erasure code system guarding data integrity

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 51.1%
  • M4 22.4%
  • Perl 13.2%
  • Roff 4.3%
  • Shell 4.2%
  • Assembly 4.2%
  • Makefile 0.6%