A Rust implementation of ZOON (Zero Overhead Object Notation) - the most token-efficient data format for LLMs.
Add to your Cargo.toml:
[dependencies]
zoon-format = "1.0"use zoon::encode;
use serde::Serialize;
#[derive(Serialize)]
struct User {
id: i32,
name: String,
role: String,
active: bool,
}
fn main() {
let users = vec![
User { id: 1, name: "Alice".into(), role: "Admin".into(), active: true },
User { id: 2, name: "Bob".into(), role: "User".into(), active: false },
];
let encoded = zoon::encode(&users).unwrap();
println!("{}", encoded);
// # id:i name:s role=Admin|User active:b
// Alice Admin 1
// Bob User 0
}use zoon::decode;
use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct User {
id: i32,
name: String,
role: String,
active: bool,
}
fn main() {
let input = "# id:i name:s role:s active:b\n1 Alice Admin 1\n2 Bob User 0";
let users: Vec<User> = zoon::decode(input).unwrap();
println!("{:?}", users);
}| Function | Description |
|---|---|
encode<T: Serialize>(value: &T) -> Result<String> |
Encode any serializable value to ZOON |
decode<T: DeserializeOwned>(input: &str) -> Result<T> |
Decode ZOON into a value |
| Rust Type | ZOON Type | Header |
|---|---|---|
i32, i64 |
Integer | :i |
bool |
Boolean | :b |
String |
String | :s |
Option<T> (None) |
Null | ~ |
| Auto-increment ID | Implicit | :i+ |
MIT License. © 2025-PRESENT Carsen Klock.