Skip to main content

driven/binary/
mod.rs

1//! DX Binary Dawn - Binary-First Rule Format
2//!
3//! Leverages DX Serializer's world-record format principles for
4//! 73% smaller rules with zero-copy parsing.
5
6pub mod checksum;
7mod infinity_format;
8mod memory_map;
9mod rule_schema;
10mod simd_tokenizer;
11mod string_table;
12
13pub use checksum::{Blake3Checksum, Blake3Hasher, compute_blake3, verify_blake3};
14pub use infinity_format::{INFINITY_MAGIC, InfinityHeader, InfinityRule};
15pub use memory_map::{MappedRule, RuleMapping};
16pub use rule_schema::{BinaryRule, BinaryStep, RuleFlags, SectionOffsets};
17pub use simd_tokenizer::{SimdTokenizer, Token, TokenType};
18pub use string_table::{StringId, StringTable, StringTableBuilder};
19
20use crate::Result;
21
22/// DX ∞ Infinity Format version
23pub const INFINITY_VERSION: u16 = 1;
24
25/// Maximum rule size (10MB safety limit)
26pub const MAX_RULE_SIZE: usize = 10 * 1024 * 1024;
27
28/// Load rules from binary format with zero-copy
29pub fn load_zero_copy(path: &std::path::Path) -> Result<MappedRule> {
30    MappedRule::open(path)
31}
32
33/// Verify binary integrity
34pub fn verify_integrity(data: &[u8]) -> Result<bool> {
35    if data.len() < std::mem::size_of::<InfinityHeader>() {
36        return Ok(false);
37    }
38
39    let header = InfinityHeader::from_bytes(data)?;
40
41    // Verify magic
42    if &header.magic != INFINITY_MAGIC {
43        return Ok(false);
44    }
45
46    // Verify checksum
47    let payload = &data[std::mem::size_of::<InfinityHeader>()..];
48    Ok(verify_blake3(payload, &header.checksum))
49}
50
51#[cfg(test)]
52mod tests {
53    use super::*;
54
55    #[test]
56    fn test_infinity_version() {
57        assert_eq!(INFINITY_VERSION, 1);
58    }
59
60    #[test]
61    fn test_max_rule_size() {
62        assert_eq!(MAX_RULE_SIZE, 10 * 1024 * 1024);
63    }
64}