STAHL: Compressing Data for Easy Random Access
Format
SOECS Senior Project Demonstration
Faculty Mentor Name
Shon Vick
Faculty Mentor Department
Computer Science Department
Abstract/Artist Statement
STAHL’s purpose is to both create and provide access to collections of compressed files, inspired by certain compression archive formats used in numerous Nintendo 3DS games. Compression, in this context, refers to lossless compression, where a given file’s binary data—the 0s and 1s that comprise all digital data—is analyzed, and used to construct a new file that contains the same information in a smaller space, but requires additional processing to restore it to its original, usable form. ZIP files are an example of a lossless compression format.
STAHL focuses on both creating and reading from its own compressed archives, which are similar to ZIP files in purpose, but very different in implementation and features. STAHL supports several common compression formats, such as Zstandard and Brotli, to allow for a wide range of possible decompression time/compression ratio balances—compression ratio being a compressed file’s size divided by its uncompressed size. STAHL also supports encryption of archives at creation time and decryption while a libstahl program is running, to prevent casual decompression and analyzing of contents.
The project consists of two separate parts: Armsthrift, which creates the compressed files, and libstahl, a software library that external programs can use to access STAHL format archives.
The name STAHL is a both a reference and a backronym. The original name, Stahl, is the name of a character from a video game, and a backronym—“STores A Heckuva Lot”—was applied to give it a purpose beyond that.
Location
School of Engineering & Computer Science
Start Date
5-5-2018 3:30 PM
End Date
5-5-2018 4:30 PM
STAHL: Compressing Data for Easy Random Access
School of Engineering & Computer Science
STAHL’s purpose is to both create and provide access to collections of compressed files, inspired by certain compression archive formats used in numerous Nintendo 3DS games. Compression, in this context, refers to lossless compression, where a given file’s binary data—the 0s and 1s that comprise all digital data—is analyzed, and used to construct a new file that contains the same information in a smaller space, but requires additional processing to restore it to its original, usable form. ZIP files are an example of a lossless compression format.
STAHL focuses on both creating and reading from its own compressed archives, which are similar to ZIP files in purpose, but very different in implementation and features. STAHL supports several common compression formats, such as Zstandard and Brotli, to allow for a wide range of possible decompression time/compression ratio balances—compression ratio being a compressed file’s size divided by its uncompressed size. STAHL also supports encryption of archives at creation time and decryption while a libstahl program is running, to prevent casual decompression and analyzing of contents.
The project consists of two separate parts: Armsthrift, which creates the compressed files, and libstahl, a software library that external programs can use to access STAHL format archives.
The name STAHL is a both a reference and a backronym. The original name, Stahl, is the name of a character from a video game, and a backronym—“STores A Heckuva Lot”—was applied to give it a purpose beyond that.