Skip to main content

datacortex_core/
lib.rs

1//! DataCortex -- lossless JSON/NDJSON compression engine.
2//!
3//! Combines format-aware preprocessing (schema inference, columnar reorg,
4//! typed encoding) with bit-level context mixing and entropy coding to
5//! achieve compression ratios that beat zstd-19 and brotli-11 on every
6//! JSON file tested.
7//!
8//! # Quick Start
9//!
10//! ```
11//! use datacortex_core::codec::{compress_to_vec, decompress_from_slice};
12//! use datacortex_core::dcx::Mode;
13//!
14//! let data = br#"{"id":1,"name":"test"}"#;
15//! let compressed = compress_to_vec(data, Mode::Fast, None).unwrap();
16//! let original = decompress_from_slice(&compressed).unwrap();
17//! assert_eq!(data.as_slice(), original.as_slice());
18//! ```
19
20// Lint policy (see STYLE.md for rationale).
21#![warn(clippy::pedantic)]
22#![allow(
23    clippy::module_name_repetitions,
24    clippy::cast_lossless,
25    clippy::cast_precision_loss,
26    clippy::cast_sign_loss,
27    clippy::cast_possible_wrap,
28    clippy::cast_possible_truncation,
29    clippy::too_many_lines,
30    clippy::similar_names,
31    clippy::unreadable_literal,
32    clippy::missing_errors_doc,
33    clippy::missing_panics_doc,
34    clippy::needless_pass_by_value,
35    clippy::must_use_candidate,
36    clippy::return_self_not_must_use,
37    clippy::struct_excessive_bools,
38    clippy::many_single_char_names,
39    clippy::doc_markdown,
40    clippy::items_after_statements,
41    clippy::manual_let_else,
42    clippy::if_not_else,
43    clippy::redundant_else,
44    clippy::match_same_arms,
45    clippy::inline_always,
46    clippy::wildcard_imports,
47    clippy::unnecessary_wraps,
48    clippy::range_plus_one,
49    clippy::single_match_else,
50    clippy::uninlined_format_args,
51    clippy::unused_self,
52    clippy::struct_field_names,
53    clippy::default_trait_access,
54    clippy::large_types_passed_by_value,
55    clippy::fn_params_excessive_bools,
56    clippy::trivially_copy_pass_by_ref,
57    clippy::verbose_bit_mask,
58    clippy::format_push_string
59)]
60
61pub mod codec;
62pub mod dcx;
63pub mod entropy;
64pub mod format;
65pub mod mixer;
66pub mod model;
67pub mod state;
68
69pub use codec::{
70    compress, compress_turbo, compress_with_model, compress_with_options, decompress,
71    decompress_with_model, raw_zstd_compress, read_header,
72};
73pub use dcx::{DcxHeader, FormatHint, Mode};
74pub use format::detect_format;
75pub use model::{CMConfig, CMEngine};