This is a tool for distributing and coordinating jobs on multiple machines over a network.
Currently, each available host must be on a separate line of
hosts.txt, and each job must be on a separate line of
jobs.txt. If each job consists of multiple commands, they must still be on the same line, separated by a semicolon.
I originally created this to facilitate using multiple computers to work on encoding several video files at the same time using ffmpeg.
This is an implementation of the AES encryption cipher in C++, with no dependencies other than the standard library. It should be 100% portable, as it does not use any instructions specific to a particular computer architecture. Of course, this means that it will be slower than any hardware-accelerated implementation. Adding hardware acceleration is a goal for this project.
This program was created in the United States, and contains an implementation of a cryptographic algorithm, and therefore (for reasons I personally believe are dumb) may be subject to restrictions regarding its exportation. So, don't download this if you're in a country for which the "exportation" of math is restricted by law.
I provide no guarantee of the robustness or cryptographic strength of this implementation. Please don't use this if you have serious cryptographic needs. Instead, use another open-source, more scrutinized implementation, such as that which comes with OpenSSL.
This is a tool for getting the checksum of piped input while it's in use. Since it outputs on standard out exactly what it received on standard in, it can be placed in the middle of an existing pipe to extract a hash of a stream of data.
For example, you could use it to verify a file as it's being downloaded:
curl http://url/image.iso | sump md5 > image.iso 2> image.iso.md5
As a side note, performance seems to be superior to corresponding md5sum-type programs for large data streams (in some cases, substantially faster).
x64 benchmarked with
benchmark.sh using 1 GB of test data on an Intel Xeon E3-1271 @ 3.6 GHz in Ubuntu 14.04.3 LTS, built with GCC 4.8. ARMv6 benchmarked with
benchmark.sh using 32 MB of test data on a Raspberry Pi B+ in Raspbian, built with GCC 4.6.
|Hash||*sum (x64)||*sump (x64)||*sum (ARMv6)||*sump (ARMv6)|
|MD5||671 MB/s||709 MB/s||20 MB/s||20 MB/s|
|SHA1||426 MB/s||826 MB/s||13.3 MB/s||14.6 MB/s|
|SHA224||244 MB/s||292 MB/s||8.34 MB/s||9.64 MB/s|
|SHA256||243 MB/s||292 MB/s||8.71 MB/s||11.2 MB/s|
|SHA384||365 MB/s||447 MB/s||471 kB/s||6.52 MB/s|
|SHA512||363 MB/s||445 MB/s||477 kB/s||6.56 MB/s|
There seems to be serious problems with the included sha384sum and sha512sum programs in Rasbpian, at least as of the end of 2015.
This is a tool for creating a sparse file from another file or data stream. It may be useful for keeping disk images small while still maintaining disk availability for virtualized clients, among other things.
This tool can only create sparse files if used with operating and file systems that have sparse file support.
This tool was designed primarily with disk images in mind. Decompressing an existing disk image may take up a large amount of disk space, even if most of the virtual sectors are unused and zeroed out. Decompressing a disk image to a sparse file can save a lot of disk space and prevent unnecessary disk I/O operations.
This is a tool designed for usage in Linux, in order to read to or write from a physical address in memory. It was primarily designed to allow writingto mapped device memory in an FPGA with an embedded ARM core.
Created to write to memory-mapped SPI flash from an ARM SoCin order to write a configuration image for an FPGA.
Similar to devmem2, but allows for reading multiple words at a time.
Precompiled binaries are available for the following systems/architectures: