Skip to content

Implementations ​

TOON has official and community implementations across multiple programming languages. All implementations are intended to conform to the same Specification to ensure compatibility and interoperability.

The code examples throughout this documentation site use the TypeScript implementation by default, but the format and concepts apply equally to all languages.

NOTE

When implementing TOON in other languages, please follow the spec to ensure compatibility across implementations. The conformance tests provide language-agnostic test fixtures that validate your implementation.

Official Implementations ​

These implementations are actively being developed by dedicated teams. Contributions are welcome! Join the effort by opening issues, submitting PRs, or discussing implementation details in the respective repositories.

LanguageRepositoryStatusMaintainer
.NETtoon-dotnetIn DevelopmentOfficial Team
Darttoon-dartIn DevelopmentOfficial Team
Gotoon-goIn DevelopmentOfficial Team
Javatoon-java✅ StableOfficial Team
JuliaToonFormat.jl✅ StableOfficial Team
Pythontoon-python✅ StableOfficial Team
Rusttoon-rust✅ StableOfficial Team
Swifttoon-swift✅ StableOfficial Team
TypeScript/JavaScripttoon✅ StableOfficial Team

Community Implementations ​

Community members have created implementations in additional languages:

LanguageRepositoryMaintainer
ApexApexToon@Eacaw
CTOONc@UsboKirishima
C++ctoon@mohammadraziei
C#ToonEncoder@Cysharp
Clojuretoon@vadelabs
Crystaltoon-crystal@mamantoha
Delphidelphi-toon@ernestoalconada
Elixirtoon_ex@kentaro
Gleamtoon_codec@axelbellec
Gogotoon@alpkeskin
Javajson-io@jdereg
Kotlinktoon@lukelast
Laravel Frameworklaravel-toon@mischasigtermans
Lua/Neovimtoon.nvim@thalesgelinger
Matlabctoon@mohammadraziei
OCamlocaml-toon@davesnx
PerlData::TOON@ytnobody
PHPtoon-php@HelgeSverre
Python (C++ backend)ctoon@mohammadraziei
Python (Rust backend)toons@alesanfra
Rtoon@laresbernardo
Rubytoon-ruby@andrepcg
Scalatoon4s@vim89
Zigtoon-zig@montanaflynn

Contributing an Implementation ​

Building a TOON implementation for a new language? Great! Here are some steps to get started:

  1. Follow the spec: Implement the latest specification.
  2. Add tests: Run the reference test suite.
  3. Document usage: Provide a clear README with installation and usage examples.
  4. Share it: Open a PR to add your implementation to the README at github.com/toon-format/toon.