Sickle
A robust Rust parser for CCL (Categorical Configuration Language) with optional Serde support.
Features
- Pure Rust implementation - Zero unsafe code
- Two API styles - Direct
Modelnavigation or Serde deserialization - Complete CCL support - Lists, nested records, multiline values, comments
- Memory efficient - Optional string interning via feature flag
- Well-tested - Comprehensive test suite with property-based tests
Quick Start
Direct API
use parse;
let ccl = r#"
name = Santa
version = 0.1.0
author = Tyler Butler
"#;
let model = parse?;
assert_eq!;
assert_eq!;
Serde Integration
use Deserialize;
use from_str;
let ccl = r#"
name = Santa
version = 0.1.0
author = Tyler Butler
"#;
let config: Config = from_str?;
assert_eq!;
CCL Syntax
CCL uses simple key-value pairs with indentation for nesting:
/= This is a comment
name = MyApp
version = 1.0.0
/= Lists use empty keys
dependencies =
= tokio
= serde
= clap
/= Nested configuration
database =
host = localhost
port = 5432
credentials =
username = admin
password = secret
License
MIT