BTOON (Binary TOON) is a high-performance binary serialization format that extends MessagePack with custom tabular data optimization. Built for the TOON format, BTOON provides 20-40% size reduction for uniform tabular datasets while maintaining full MessagePack compatibility.
- 🚀 High Performance — 4-7x faster than JSON, comparable to MessagePack
- 📦 MessagePack Compatible — Fully compliant with the MessagePack specification
- 📊 Tabular Optimization — Custom extension for compact tabular data encoding
- 🔒 Type Safe — Comprehensive, modern C++20 type system
- 🌐 Multi-Language — Language bindings for Python, Node.js, JavaScript, Go, and PHP
- 🎯 Zero-Copy Decoding — Efficient
std::spanAPI for minimal allocations - 📝 Schema Validation — Validate data against user-defined schemas
- 🌊 Streaming API — Efficiently encode and decode sequences of objects
- btoon-core — C++20 core library with C-API for language bindings
- btoon-python — Python bindings (pybind11)
- btoon-nodejs — Node.js bindings (N-API)
- btoon-javascript — JavaScript/WASM bindings
- btoon-go — Go bindings (cgo)
- btoon-php — PHP bindings
- btoon-web — Modern web interface built with React + Vite
#include "btoon/btoon.h"
using namespace btoon;
// Create a value
Value data = Map{
{"name", String("Alice")},
{"age", Int(30)},
{"active", Bool(true)}
};
// Encode
auto encoded = encode(data);
// Decode
auto decoded = decode(encoded);BTOON is in early stages, so every bug report, idea, or pull request has outsized impact! We welcome contributions of all kinds:
- 🐛 Bug Reports — Help us improve stability
- 💡 Feature Ideas — Share your use cases and needs
- 📖 Documentation — Improve docs and examples
- 🔧 Code Contributions — Submit PRs for features or fixes
- 🎨 Design & UX — Enhance the web interface
- Fork the repository you want to contribute to
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes with clear commit messages
- Open a pull request with context and details
- Be kind and transparent — we ship in public to learn together
No contribution is too small. Docs improvements, design tweaks, and roadmap suggestions are all valuable when building something new.
- 📘 Technical Specification
- 🗺️ Roadmap
- 🌐 Web Interface (coming soon)
- 📝 API Documentation
This project is licensed under the MIT License — see the LICENSE file for details.
Built with ❤️ by the BTOON community