Files
toon/docs/ecosystem/implementations.md
Satoshi Azuma a.k.a. ytnobody cf87cfafff docs: add Perl project link to README (#192)
* Add Perl project link to README

* docs: add to implementations

---------

Co-authored-by: Johann Schopplich <mail@johannschopplich.com>
2025-11-21 09:04:30 +01:00

4.4 KiB

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.

Language Repository Status Maintainer
.NET toon-dotnet In Development Official Team
Dart toon-dart In Development Official Team
Go toon-go In Development Official Team
Python toon-python In Development Official Team
Rust toon-rust In Development Official Team
TypeScript/JavaScript toon Stable Official Team

Community Implementations

Community members have created implementations in additional languages:

Language Repository Maintainer
Apex ApexToon @Eacaw
C++ ctoon @mohammadraziei
Clojure toon @vadelabs
Crystal toon-crystal @mamantoha
Elixir toon_ex @kentaro
Gleam toon_codec @axelbellec
Go gotoon @alpkeskin
Java JToon @felipestanzani
Kotlin kotlin-toon @vexpera-br
Laravel Framework laravel-toon @jobmetric
Lua/Neovim toon.nvim @thalesgelinger
OCaml ocaml-toon @davesnx
Perl Data::TOON @ytnobody
PHP toon-php @HelgeSverre
R toon @laresbernardo
Ruby toon-ruby @andrepcg
Scala toon4s @vim89
Swift TOONEncoder @mattt

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 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.