Skip to content

zoon-format/zoon-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zoon-rust

A Rust implementation of ZOON (Zero Overhead Object Notation) - the most token-efficient data format for LLMs.

Crates.io License

Installation

Add to your Cargo.toml:

[dependencies]
zoon-format = "1.0"

Usage

Encoding

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
}

Decoding

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);
}

API

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

Type Mapping

Rust Type ZOON Type Header
i32, i64 Integer :i
bool Boolean :b
String String :s
Option<T> (None) Null ~
Auto-increment ID Implicit :i+

License

MIT License. © 2025-PRESENT Carsen Klock.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages