TOON: Token-Oriented Object Notation - Status Projektu Styczeń 2026

TOON to kompaktowy format modelowania danych zaprojektowany dla efektywnej komunikacji z LLM. Multi-language SDK support. Status: Development

2026-02-10Softreck

TOON: Token-Oriented Object Notation

Status: 🔄 Development
Goal: LLM-friendly data format
Languages: Python, JavaScript, Go, Rust

Co to jest TOON?

TOON (Token-Oriented Object Notation) to kompaktowy format modelowania danych zaprojektowany specjalnie dla:

  1. Efektywnej komunikacji z LLM - minimalizacja tokenów
  2. API definitions - zwięzły opis endpointów
  3. Schema definitions - kompaktowe typy danych
  4. Config files - czytelne dla ludzi i maszyn

Motywacja

JSON i YAML są verbose - przy komunikacji z LLM każdy token kosztuje. TOON redukuje zużycie tokenów o 40-60% przy zachowaniu czytelności.

Porównanie

JSON (47 tokenów):

{
"user": {
"id": 123,
"name": "John Doe",
"email": "john@example.com",
"roles": ["admin", "user"]
}
}

TOON (19 tokenów):

user{id:123 name:"John Doe" email:"john@example.com" roles:[admin user]}

Redukcja: 60%

Składnia

Podstawy

# Komentarz
name:"value" # String
count:42 # Number
active:true # Boolean
items:[a b c] # Array
nested{key:val} # Object

API Definition

api{
name:"User API"
version:"1.0"
base:"/api/v1"
endpoints[
{GET /users -> User[] "List all users"}
{GET /users/:id -> User "Get user by ID"}
{POST /users <- UserCreate -> User "Create user"}
{PUT /users/:id <- UserUpdate -> User "Update user"}
{DELETE /users/:id -> void "Delete user"}
]
types{
User{id:int name:str email:str roles:str[]}
UserCreate{name:str email:str}
UserUpdate{name:str? email:str?}
}
}

Schema Definition

schema User{
id:int @primary
name:str @required @min(1) @max(100)
email:str @email @unique
roles:str[] @default([user])
created:datetime @auto
}

SDK Support

Python

from toon import parse, dump
# Parse TOON
data = parse('user{name:"John" age:30}')
print(data) # {'user': {'name': 'John', 'age': 30}}
# Generate TOON
toon_str = dump({'user': {'name': 'John', 'age': 30}})
print(toon_str) # user{name:"John" age:30}

JavaScript

import { parse, dump } from 'toon-js';
const data = parse('user{name:"John" age:30}');
console.log(data); // { user: { name: 'John', age: 30 } }
const toonStr = dump({ user: { name: 'John', age: 30 } });
console.log(toonStr); // user{name:"John" age:30}

Status Komponentów

KomponentStatusUwagi
Spec v1.0✅ CompleteCore syntax finalized
Python SDK✅ StabilnyPyPI: toon-parser
JavaScript SDK⚠️ Betanpm: toon-js
Go SDK🔄 In ProgressQ1 2026
Rust SDK⏳ PlannedQ2 2026
VS Code Extension⚠️ BetaSyntax highlighting
JSON Schema Conv✅ StabilnyBidirectional
OpenAPI Conv🔄 In ProgressImport only

Use Cases

1. LLM Prompts

prompt{
system:"You are a helpful assistant"
context{user_prefs{lang:pl theme:dark}}
history[
{role:user msg:"Hello"}
{role:assistant msg:"Hi! How can I help?"}
]
}

2. API Documentation

endpoint{
method:POST
path:"/orders"
auth:bearer
body{product_id:int qty:int}
response{order_id:int status:str}
errors[400:"Invalid input" 401:"Unauthorized"]
}

3. Configuration

config{
app{name:"MyApp" env:production}
db{host:"localhost" port:5432 pool:10}
cache{driver:redis ttl:3600}
features{dark_mode:true beta:false}
}

Benchmarks

Token Count Comparison

FormatTokensReduction vs JSON
JSON100baseline
YAML8515%
TOML8020%
TOON4258%

Parse Performance (ops/sec)

LanguageJSONTOON
Python45,00038,000
JavaScript120,00095,000
Go280,000250,000

TOON is ~15-20% slower than JSON parsing, but the token savings offset this for LLM use cases.

Roadmap

Q1 2026

  • Go SDK release
  • OpenAPI import complete
  • CLI tool for conversion

Q2 2026

  • Rust SDK
  • GraphQL schema support
  • Protobuf interop

Q3 2026

  • Spec v1.1 with extensions
  • Tree-sitter grammar
  • LSP server

Linki

  • Spec: github.com/wronai/toon-spec
  • Python: pypi.org/project/toon-parser
  • JavaScript: npmjs.com/package/toon-js
  • Playground: toon.dev (planned)

Ostatnia aktualizacja: 10 lutego 2026