Library quick start
TerseTS is implemented in Zig and exposes Zig and C APIs plus language bindings.
Compression methods are selected from the Method enum and configured with a
small JSON object.
Python
from tersets import compress, decompress, Method
values = [1.0, 2.0, 3.0, 4.0, 5.0]
compressed = compress(values, Method.SwingFilter, {"abs_error_bound": 0.1})
restored = decompress(compressed)
Zig
const tersets = @import("path/to/tersets.zig");
var values = [_]f64{ 1.0, 2.0, 3.0, 4.0, 5.0 };
var compressed = try tersets.compress(allocator, values, .SwingFilter, "{ \"abs_error_bound\": 0.1 }");
defer compressed.deinit();
var restored = try tersets.decompress(allocator, compressed);
defer restored.deinit();
Rust
use tersets::{Method, compress, decompress};
let values = vec![1.0, 2.0, 3.0, 4.0, 5.0];
let compressed = compress(&values, Method::SwingFilter, "{\"abs_error_bound\": 0.1}")?;
let restored = decompress(&compressed)?;
C and Julia examples, compilation instructions, and linking
details are available in the
library README.