| Crates.io | sickle |
| lib.rs | sickle |
| version | 0.1.2 |
| created_at | 2025-12-02 00:05:59.673773+00 |
| updated_at | 2026-01-18 21:36:52.530839+00 |
| description | A robust Rust parser for CCL (Categorical Configuration Language) with Serde support |
| homepage | https://github.com/tylerbutler/santa |
| repository | https://github.com/tylerbutler/santa |
| max_upload_size | |
| id | 1960890 |
| size | 565,832 |
A robust Rust parser for CCL (Categorical Configuration Language) with optional Serde support.
Model navigation or Serde deserializationuse sickle::parse;
let ccl = r#"
name = Santa
version = 0.1.0
author = Tyler Butler
"#;
let model = parse(ccl)?;
assert_eq!(model.get("name")?.as_str()?, "Santa");
assert_eq!(model.get("version")?.as_str()?, "0.1.0");
use serde::Deserialize;
use sickle::from_str;
#[derive(Deserialize)]
struct Config {
name: String,
version: String,
author: String,
}
let ccl = r#"
name = Santa
version = 0.1.0
author = Tyler Butler
"#;
let config: Config = from_str(ccl)?;
assert_eq!(config.name, "Santa");
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
MIT