CToon
The fastest implementation of the TOON format — a compact, human-readable serialisation format designed to minimise LLM token usage. Achieves 30-60% token reduction versus JSON while remaining fully readable and structured.
CToon is built on a high-performance C core and exposes the same logic through idiomatic bindings for C++, Go, Julia, MATLAB, Python, Rust, and Zig, plus a standalone CLI. The name reflects its foundation: C + TOON.
Format Overview
# JSON (352 bytes) # TOON (165 bytes, -53 %)
{ order:
"order": { id: ORD-12345
"id": "ORD-12345", status: completed
"items": [ customer:
{"product":"Book","qty":2}, name: John Doe
{"product":"Pen","qty":5} email: john@example.com
] items[2]{product,qty}:
} Book,2
} Pen,5
Quick Start
Pick your language below — each section is install, a short example, then a link to that language's full reference for everything else (flags, options, error handling, ...). Order matches the tabs on the documentation site.
CLI
pip install ctoon # ships a pre-built `ctoon` binary — no compiler needed
ctoon input.json # JSON -> TOON (auto-detected from extension)
ctoon input.toon -o output.json # TOON -> JSON
cat data.json | ctoon -e - # stdin -> TOON
Building from source with CMake instead is also supported (sudo cmake --install build after building — see Building & Testing).
→ Full CLI reference
C
Requires CMake 3.19+ and a C99 compiler.
# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(ctoon
GIT_REPOSITORY https://github.com/MohammadRaziei/ctoon.git GIT_TAG main)
FetchContent_MakeAvailable(ctoon)
target_link_libraries(my_app PRIVATE ctoon::ctoon)
#include "ctoon.h"
ctoon_doc *doc = ctoon_read("name: Alice\nage: 30", 20, 0);
ctoon_val *root = ctoon_doc_get_root(doc);
printf("%s\n", ctoon_get_str(ctoon_obj_get(root, "name"))); /* Alice */
size_t len;
char *toon = ctoon_write(doc, &len); /* caller must free() */
free(toon);
ctoon_doc_free(doc);
→ Full C API reference (also summarised below)
C++
Requires CMake 3.19+ and a C++11 compiler. Header-only on top of the C core.
# same FetchContent block as C, then:
target_link_libraries(my_app PRIVATE ctoon::ctoonpp)
#include "ctoon.hpp"
auto doc = ctoon::document::parse("name: Alice\nage: 30");
auto root = doc.root();
std::cout << root["name"].get_str().str() << "\n"; // Alice
std::cout << doc.to_json(2).c_str() << "\n"; // pretty JSON
Go
Requires Go 1.21+ with CGo enabled; a C compiler must be on the build host.
go get github.com/mohammadraziei/ctoon
import ctoon "github.com/mohammadraziei/ctoon"
toon, _ := ctoon.Dumps(map[string]interface{}{"name": "Alice", "age": int64(30)})
val, _ := ctoon.Loads(toon)
Julia
Requires Julia 1.7+ and a C compiler. Not yet in Julia's General registry.
import Pkg
Pkg.add(url="https://github.com/mohammadraziei/ctoon.git", subdir="src/bindings/julia")
using CToon
data = CToon.parse("""{"name": "Alice", "age": 30}""")
println(data["name"]) # Alice
MATLAB
Requires MATLAB R2014b+ and a C compiler configured for MEX (mex -setup C).
cd src/bindings/matlab
ctoon_install % compiles the MEX gateway, adds it to your MATLAB path
s = ctoon.encode(struct('name', 'Alice', 'age', uint64(30)));
v = ctoon.decode(s);
v.name % 'Alice'
→ Full MATLAB reference (type mapping, ctoon.read/ctoon.write, Python-style aliases, ...)
Python
Requires Python 3.9+. Pre-built wheels for Linux, macOS and Windows — no compiler needed.
pip install ctoon
import ctoon
toon = ctoon.dumps({"name": "Alice", "age": 30})
data = ctoon.loads(toon)
Rust
Requires Rust 1.70+ and a C compiler on the build host.
[dependencies]
ctoon = { git = "https://github.com/mohammadraziei/ctoon.git" }
let val = ctoon::loads("name: Alice\nage: 30")?;
println!("{}", val["name"].as_str().unwrap()); // Alice
let toon = ctoon::dumps(&val)?;
Zig
Requires Zig 0.16.0+.
zig fetch --save git+https://github.com/mohammadraziei/ctoon.git
const ctoon = @import("ctoon");
var val = try ctoon.loads(gpa, "name: Alice\nage: 30");
defer val.deinit(gpa);
const toon = try ctoon.dumps(gpa, val);
Building & Testing From Source
Each binding can be built, run and tested entirely with its own native
tooling — cargo test for Rust, go test for Go, pytest for Python, zig build test for Zig, Pkg.test() for Julia, MATLAB's buildtool test — pick
whichever's already open and go. But the project as a whole — building
every language together, running the full cross-language test matrix,
generating coverage, and building the documentation site — is driven by
CMake, the same commands CI uses. This section covers that path; see
CONTRIBUTING.md for the complete contributor workflow.
Configure
cmake -B build -DCMAKE_BUILD_TYPE=Release
By default this configures only C, C++ and the CLI. Each other language is opt-in via its own flag — and the flag changes what a missing toolchain does: silently skipped when the flag is OFF (the default, so the command above works on a machine with only some toolchains installed), a hard configure error when you've explicitly turned it ON:
# e.g. working on the Rust binding
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCTOON_BUILD_RUST=ON
# everything, like CI
cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DCTOON_BUILD_PYTHON=ON -DCTOON_BUILD_GO=ON -DCTOON_BUILD_RUST=ON \
-DCTOON_BUILD_ZIG=ON -DCTOON_BUILD_JULIA=ON
CMake options
| Option | Default | Description |
|---|---|---|
CTOON_BUILD_TESTS |
ON (top-level) | Build and register tests. |
CTOON_BUILD_EXAMPLES |
ON (top-level) | Build the examples. |
CTOON_BUILD_DOCS |
OFF | Build documentation. |
CTOON_BUILD_PYTHON |
OFF | Build the Python extension (nanobind). |
CTOON_BUILD_GO |
OFF | Require the Go toolchain (error instead of skip if missing). |
CTOON_BUILD_RUST |
OFF | Require the Rust toolchain (error instead of skip if missing). |
CTOON_BUILD_ZIG |
OFF | Require the Zig toolchain (error instead of skip if missing). |
CTOON_BUILD_JULIA |
OFF | Require the Julia toolchain (error instead of skip if missing). |
CTOON_BUILD_MATLAB |
OFF | Require the MATLAB toolchain (error instead of skip if missing). |
CTOON_BUILD_ALL_LANGS |
OFF | Require every self-building language's toolchain at once. |
JSON support is on by default. Define CTOON_DISABLE_JSON to turn it off — no external JSON library is required either way.
Build
cmake --build build -j
Test
ctest --test-dir build --output-on-failure --extra-verbose
# equivalently:
cmake --build build --target ctoon_test
Per-language targets, for iterating on one binding at a time:
ctoon_test_c, ctoon_test_cpp, ctoon_test_go, ctoon_test_julia,
ctoon_test_matlab, ctoon_test_python, ctoon_test_rust, ctoon_test_zig
— each also runnable as a single ctest case, e.g. ctest --test-dir build -R rust.
Coverage
cmake --build build --target ctoon_coverage
Per-language: ctoon_coverage_c, ctoon_coverage_cpp, ctoon_coverage_go,
ctoon_coverage_julia, ctoon_coverage_matlab, ctoon_coverage_python,
ctoon_coverage_rust, plus ctoon_coverage_total (merged C/C++/Python/Go/Rust/Julia
lcov report). Output lands in build/coverage/, with build/coverage/index.html
as the dashboard — published at
mohammadraziei.github.io/ctoon/coverage.
(Zig has no coverage target yet — see the comment in tests/zig/CMakeLists.txt.)
Docs
cmake -B build -DCTOON_BUILD_DOCS=ON # plus any CTOON_BUILD_<LANG>=ON you need
cmake --build build --target ctoon_docs
Per-language: ctoon_docs_c, ctoon_docs_cpp, ctoon_docs_julia,
ctoon_docs_matlab, ctoon_docs_python, ctoon_docs_rust, plus
ctoon_docs_index for the landing page (CLI and Zig are assembled straight
from Markdown, no external doc tool needed). Output lands in build/docs/out/.
C API Reference
Parsing
/* from memory */
ctoon_doc *ctoon_read(const char *toon, size_t len, ctoon_read_flag flags);
ctoon_doc *ctoon_read_opts(char *toon, size_t len, ctoon_read_flag flags,
const ctoon_alc *alc, ctoon_read_err *err);
ctoon_doc *ctoon_read_opts_indent(char *toon, size_t len, ctoon_read_flag flags,
int indent_size, const ctoon_alc *alc,
ctoon_read_err *err);
/* from file */
ctoon_doc *ctoon_read_file(const char *path, ctoon_read_flag flags,
const ctoon_alc *alc, ctoon_read_err *err);
/* from JSON */
ctoon_doc *ctoon_read_json(char *json, size_t len, ctoon_read_flag flags,
const ctoon_alc *alc, ctoon_read_err *err);
ctoon_doc *ctoon_read_json_file(const char *path, ctoon_read_flag flags,
const ctoon_alc *alc, ctoon_read_err *err);
Writing
/* TOON output */
char *ctoon_write(const ctoon_doc *doc, size_t *len);
char *ctoon_write_opts(const ctoon_doc *doc, const ctoon_write_options *opts,
const ctoon_alc *alc, size_t *len, ctoon_write_err *err);
char *ctoon_mut_write(const ctoon_mut_doc *doc, size_t *len);
/* JSON output */
char *ctoon_doc_to_json(const ctoon_doc *doc, int indent,
ctoon_write_flag flags, const ctoon_alc *alc,
size_t *len, ctoon_write_err *err);
Access
/* document */
ctoon_val *ctoon_doc_get_root(const ctoon_doc *doc);
void ctoon_doc_free(ctoon_doc *doc);
/* type checks */
bool ctoon_is_null(ctoon_val *v); bool ctoon_is_bool(ctoon_val *v);
bool ctoon_is_true(ctoon_val *v); bool ctoon_is_false(ctoon_val *v);
bool ctoon_is_uint(ctoon_val *v); bool ctoon_is_sint(ctoon_val *v);
bool ctoon_is_real(ctoon_val *v); bool ctoon_is_str(ctoon_val *v);
bool ctoon_is_arr(ctoon_val *v); bool ctoon_is_obj(ctoon_val *v);
/* getters */
const char *ctoon_get_str(ctoon_val *v);
uint64_t ctoon_get_uint(ctoon_val *v);
int64_t ctoon_get_sint(ctoon_val *v);
double ctoon_get_real(ctoon_val *v);
bool ctoon_get_bool(ctoon_val *v);
/* array */
size_t ctoon_arr_size(ctoon_val *arr);
ctoon_val *ctoon_arr_get(ctoon_val *arr, size_t idx); /* O(1) */
/* object */
size_t ctoon_obj_size(ctoon_val *obj);
ctoon_val *ctoon_obj_get(ctoon_val *obj, const char *key);
/* iteration */
ctoon_obj_iter ctoon_obj_iter_with(ctoon_val *obj);
ctoon_val *ctoon_obj_iter_next(ctoon_obj_iter *iter);
ctoon_val *ctoon_obj_iter_get_val(ctoon_val *key);
Mutable documents
ctoon_mut_doc *ctoon_mut_doc_new(const ctoon_alc *alc);
void ctoon_mut_doc_free(ctoon_mut_doc *doc);
void ctoon_mut_doc_set_root(ctoon_mut_doc *doc, ctoon_mut_val *root);
ctoon_mut_val *ctoon_mut_null(ctoon_mut_doc *doc);
ctoon_mut_val *ctoon_mut_bool(ctoon_mut_doc *doc, bool val);
ctoon_mut_val *ctoon_mut_uint(ctoon_mut_doc *doc, uint64_t val);
ctoon_mut_val *ctoon_mut_sint(ctoon_mut_doc *doc, int64_t val);
ctoon_mut_val *ctoon_mut_real(ctoon_mut_doc *doc, double val);
ctoon_mut_val *ctoon_mut_str(ctoon_mut_doc *doc, const char *str);
ctoon_mut_val *ctoon_mut_arr(ctoon_mut_doc *doc);
ctoon_mut_val *ctoon_mut_obj(ctoon_mut_doc *doc);
bool ctoon_mut_arr_append(ctoon_mut_val *arr, ctoon_mut_val *item);
bool ctoon_mut_obj_put(ctoon_mut_val *obj, ctoon_mut_val *key, ctoon_mut_val *val);
/* convert between immutable and mutable */
ctoon_mut_doc *ctoon_doc_mut_copy(ctoon_doc *doc, const ctoon_alc *alc);
ctoon_doc *ctoon_mut_doc_imut_copy(ctoon_mut_doc *doc, const ctoon_alc *alc);
Complexity
| Operation | Time | Notes |
|---|---|---|
ctoon_read / ctoon_read_json |
O(n) | n = input bytes |
ctoon_write / ctoon_doc_to_json |
O(n) | zero extra copy for immutable doc |
ctoon_arr_get(arr, i) |
O(1) | direct index into flat arena |
ctoon_obj_get(obj, key) |
O(k) | linear scan; k = key count |
ctoon_doc_free |
O(chunks) ~= O(1) | arena freed in one shot |
Thread Safety
| Scenario | Safe? |
|---|---|
| Multiple threads reading different documents | Yes |
| Multiple threads reading the same document | Yes |
| Building a document from multiple threads | No — arena not thread-safe |
License
MIT — see LICENSE.
Related
- toon-format/toon — the TOON format specification
Metadata
Release files for ctoon 0.8.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ctoon-0.8.2.tar.gz | 963.1 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| ctoon-0.8.2-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details |
| ctoon-0.8.2-cp312-abi3-win32.whl | CPython 3.12 | abi3 | Windows x86-32 | Details |
| ctoon-0.8.2-cp312-abi3-musllinux_1_2_x86_64.whl | CPython 3.12 | abi3 | Linux musl 1.2+ x86-64 | Details |
| ctoon-0.8.2-cp312-abi3-musllinux_1_2_aarch64.whl | CPython 3.12 | abi3 | Linux musl 1.2+ ARM64 | Details |
| ctoon-0.8.2-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| ctoon-0.8.2-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| ctoon-0.8.2-cp312-abi3-macosx_10_13_universal2.whl | CPython 3.12 | abi3 | macOS 10.13+ universal2 (ARM64, x86-64) | Details |
| ctoon-0.8.2-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| ctoon-0.8.2-cp311-cp311-win32.whl | CPython 3.11 | CPython 3.11 | Windows x86-32 | Details |
| ctoon-0.8.2-cp311-cp311-musllinux_1_2_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux musl 1.2+ x86-64 | Details |
| ctoon-0.8.2-cp311-cp311-musllinux_1_2_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux musl 1.2+ ARM64 | Details |
| ctoon-0.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| ctoon-0.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| ctoon-0.8.2-cp311-cp311-macosx_10_13_universal2.whl | CPython 3.11 | CPython 3.11 | macOS 10.13+ universal2 (ARM64, x86-64) | Details |
| ctoon-0.8.2-cp310-cp310-win_amd64.whl | CPython 3.10 | CPython 3.10 | Windows x86-64 | Details |
| ctoon-0.8.2-cp310-cp310-win32.whl | CPython 3.10 | CPython 3.10 | Windows x86-32 | Details |
| ctoon-0.8.2-cp310-cp310-musllinux_1_2_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux musl 1.2+ x86-64 | Details |
| ctoon-0.8.2-cp310-cp310-musllinux_1_2_aarch64.whl | CPython 3.10 | CPython 3.10 | Linux musl 1.2+ ARM64 | Details |
| ctoon-0.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| ctoon-0.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| ctoon-0.8.2-cp310-cp310-macosx_10_13_universal2.whl | CPython 3.10 | CPython 3.10 | macOS 10.13+ universal2 (ARM64, x86-64) | Details |
| ctoon-0.8.2-cp39-cp39-win_amd64.whl | CPython 3.9 | CPython 3.9 | Windows x86-64 | Details |
| ctoon-0.8.2-cp39-cp39-win32.whl | CPython 3.9 | CPython 3.9 | Windows x86-32 | Details |
| ctoon-0.8.2-cp39-cp39-musllinux_1_2_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux musl 1.2+ x86-64 | Details |
| ctoon-0.8.2-cp39-cp39-musllinux_1_2_aarch64.whl | CPython 3.9 | CPython 3.9 | Linux musl 1.2+ ARM64 | Details |
| ctoon-0.8.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 | Details |
| ctoon-0.8.2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| ctoon-0.8.2-cp39-cp39-macosx_10_13_universal2.whl | CPython 3.9 | CPython 3.9 | macOS 10.13+ universal2 (ARM64, x86-64) | Details |
Total release size: 25.2 MB
Release files / ctoon-0.8.2.tar.gz
| Download URL | ctoon-0.8.2.tar.gz |
|---|---|
| Size | 963.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5c1298536ece2d08bd513cbc35258b69e60f82c16db85cdb5310e28518c994a2
|
|
BLAKE2b-256 checksum How to use checksums |
d197d0ed89e6001a43bd96a6c353eab82020dda1b641c3f5b89eb7bfe7b802ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp312-abi3-win_amd64.whl
| Download URL | ctoon-0.8.2-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 511.6 kB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
4ce77b0d17b1e53a5538d42f05f221ec96599b72460b55e3a7aea9e8c451d00e
|
|
BLAKE2b-256 checksum How to use checksums |
7af789d3c3ccbf9bd46b46572edb16a6a3c87213723a305d44e8c8969ad98832
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp312-abi3-win32.whl
| Download URL | ctoon-0.8.2-cp312-abi3-win32.whl |
|---|---|
| Size | 490.9 kB |
| Tags | CPython 3.12 Windows x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
b54a5a968dd5620374e474f9a31d38e05902a0d2c9a94f61283aa2d6bdc0684d
|
|
BLAKE2b-256 checksum How to use checksums |
c634eeed891fef61fcc45e0d10736b2d65049137fe6f5333467cc1410caf0c53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp312-abi3-musllinux_1_2_x86_64.whl
| Download URL | ctoon-0.8.2-cp312-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
232b7b9a8f7c2ad2e1a4d890296636b9afa99ad9af90d59a3586b492a826b24c
|
|
BLAKE2b-256 checksum How to use checksums |
5f36e3f4fe6d9ca8c17c6f0bb1c715ab3f060a9fbd626eb885553ef944567a9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp312-abi3-musllinux_1_2_aarch64.whl
| Download URL | ctoon-0.8.2-cp312-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
33e29c77c4109ccd922556f6a878f9650a2df60f75ae3622c60d8e5d7dd199af
|
|
BLAKE2b-256 checksum How to use checksums |
67fe6da9e852a76773408044ad3cf43564d1ddb8ee46519c237b3a82b8d79cc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ctoon-0.8.2-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 424.4 kB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9187306818904679f20354393344e2843f617eb0596b1a99622acdb6096757a5
|
|
BLAKE2b-256 checksum How to use checksums |
e302b4dbe66f5a27c8209d24a1c84c5d6e3d5de1973fad32d2d5c3a96b7ba3f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ctoon-0.8.2-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 399.4 kB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
ca0ae70ef523570eff23948ff214061b7e0f2c79143d99522af6b0a1eacb1558
|
|
BLAKE2b-256 checksum How to use checksums |
0eb943653fdef3ea8a78708c154e84e74f52f2a1835c060dedf8b4abedf6ee2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp312-abi3-macosx_10_13_universal2.whl
| Download URL | ctoon-0.8.2-cp312-abi3-macosx_10_13_universal2.whl |
|---|---|
| Size | 622.7 kB |
| Tags | CPython 3.12 abi3 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
4f9744de6208af95d1b4d8c9544f5a79e67ff6eea6651738569149df98b8d531
|
|
BLAKE2b-256 checksum How to use checksums |
830718601ebe5c6c6bb0e3ac3908ab643b51ffce5c2150dc097aebb4bd57eb72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp311-cp311-win_amd64.whl
| Download URL | ctoon-0.8.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 511.9 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
95d0f0e39eb4f59399461f22c0097c57fd694a749368b5b8cea1cc4536aa349f
|
|
BLAKE2b-256 checksum How to use checksums |
fcc70520493f7eb449f7393d0da56a07bb8fc1df98dc0696e548fa320dc2af51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp311-cp311-win32.whl
| Download URL | ctoon-0.8.2-cp311-cp311-win32.whl |
|---|---|
| Size | 491.7 kB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
f0dbb9dbda1637cda647441463759dd4d3b9444effef048684b50a9f00738d58
|
|
BLAKE2b-256 checksum How to use checksums |
a8b4cfb70e383c8f34fcdd0727daaecb5f320a344b7f4a6296a17d96f2e00edc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | ctoon-0.8.2-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
fbbc5eb5f90102f64002e2b44a5b4dba2ca6360d84d92f3a453a0d9bc4aa5161
|
|
BLAKE2b-256 checksum How to use checksums |
cd5171392fdacd11a8d315956f30ba02c306b3ab166aa19c5cd82c333e1ade78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | ctoon-0.8.2-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
eabdc55aa41a92be2793a6b6581c0478c183efe734c9a590f4ff539717b96826
|
|
BLAKE2b-256 checksum How to use checksums |
948e1bebe273f7e028ad2e79f81ab2eebada87f488c942657f11cfc7b89c5199
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ctoon-0.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 428.7 kB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
64d64f568a1ef6de10b8661f078c15a0b1f26031d3b3c79464db3b414fdbc02c
|
|
BLAKE2b-256 checksum How to use checksums |
df57fddffc5288fc53c9d71b8fb776b8938e2cf579a8e05530598d4d60a6bfac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ctoon-0.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 403.7 kB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
c5eb3bb3b497337f10268b818eef7db97a450af23236f9cae7f52aa72ea81958
|
|
BLAKE2b-256 checksum How to use checksums |
e1b7460dafe1522294f79bec2b8ec0eb15fed500185531b57f35d1bd2ef0cbfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp311-cp311-macosx_10_13_universal2.whl
| Download URL | ctoon-0.8.2-cp311-cp311-macosx_10_13_universal2.whl |
|---|---|
| Size | 626.5 kB |
| Tags | CPython 3.11 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
fc1e77ee8ec7c3c0b5e7a11b264bea4a2e66908c0623558f9e9e9aa1164f47af
|
|
BLAKE2b-256 checksum How to use checksums |
39ee41c493f0db7f4448a60ab4256c318bb6563ed7cf98e6470970301b25b48b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp310-cp310-win_amd64.whl
| Download URL | ctoon-0.8.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 511.8 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9f42ade9d4a9f6e3c4f6b7af7d35bd70ee9c124b2cb2990746602964e9037251
|
|
BLAKE2b-256 checksum How to use checksums |
2cf3ac416c824a5dc8270daed866b1e757d635de1ca7a2d4ef22edf8523b9ef3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp310-cp310-win32.whl
| Download URL | ctoon-0.8.2-cp310-cp310-win32.whl |
|---|---|
| Size | 491.4 kB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
f858bfdc316d385fb4680a3b9ed97d09950147295cf60bde30a933906b806a67
|
|
BLAKE2b-256 checksum How to use checksums |
1cc7f8c556c3254d13571b87a49747dc82d566edad10f4fa3ebc3efbfa4be3fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | ctoon-0.8.2-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
29c7843bd0f35cb92e7e7f3e297563cf96d8a13b06b11a1fb980619685b0b693
|
|
BLAKE2b-256 checksum How to use checksums |
c31ae581e5b5873f873ccf4e643c370e0261b031245e5f6f7da2cbe460d060f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | ctoon-0.8.2-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
ef9460f0a932578f42f1621f465d1d59b5f44668698033094e98a4333ce4b405
|
|
BLAKE2b-256 checksum How to use checksums |
45497a9f21c980c0f7e0953783f52064c7fec077714d8d97fb8d4946a7ca0762
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ctoon-0.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 428.1 kB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
7d29d4c4e52c6b304ecc52cac5148f89ff3d0a05ffea8f05798fcd848fc8faaa
|
|
BLAKE2b-256 checksum How to use checksums |
29c62a2f0bd300cf4c3d562ad157f723b2eb078f9773fcca112328cd7d6a96f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ctoon-0.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 403.3 kB |
| Tags | CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
bef08593852a11779c7d5f3ac638ea01d4cc6938cf050a82541104ecb7a005fb
|
|
BLAKE2b-256 checksum How to use checksums |
b4b1cdb3deccd558ad07b465cc97de349848986e2dbae08bb41a4b33b635c631
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp310-cp310-macosx_10_13_universal2.whl
| Download URL | ctoon-0.8.2-cp310-cp310-macosx_10_13_universal2.whl |
|---|---|
| Size | 625.1 kB |
| Tags | CPython 3.10 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
012f6372407d1ffa9e14f90056d081bd5a54cf128b32b736e1f981e53181e0be
|
|
BLAKE2b-256 checksum How to use checksums |
b9694b6b8b523121c37777ce68f55858d4aa3f90b1aa96fcb8ce64c379378440
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp39-cp39-win_amd64.whl
| Download URL | ctoon-0.8.2-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 485.6 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ebdb726e509a5beaf7d9010d05c8f4788f3aec373621f6084c9068b73dee4a06
|
|
BLAKE2b-256 checksum How to use checksums |
25c22e034b9bfd25bc93e7256f1bd901b4403af60056e08899de13399a38f2ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp39-cp39-win32.whl
| Download URL | ctoon-0.8.2-cp39-cp39-win32.whl |
|---|---|
| Size | 467.4 kB |
| Tags | CPython 3.9 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
19f82b9749c21965aa59cc3d1223edbfb41de9f110d15f611810e7eb947c2611
|
|
BLAKE2b-256 checksum How to use checksums |
27eb1766bb40dc19ce76997b1f5e5e155f71e628e75580fb58ff5387ad45b9c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | ctoon-0.8.2-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
1a25c3e0bf0f91cac1bf286e2c11c87b4d34dd08d39b3a1a023a44220dc188b9
|
|
BLAKE2b-256 checksum How to use checksums |
8355694cefb9cc3154be83b744374b5e7f93f51fb8e0fc75aa1e914aab75c89b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp39-cp39-musllinux_1_2_aarch64.whl
| Download URL | ctoon-0.8.2-cp39-cp39-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
4428ddd4e076b58caf0f9709f693be9a9464a4e13bd76063c96d79aa945e03ad
|
|
BLAKE2b-256 checksum How to use checksums |
b7e8b43fe16cef6f5b01ec0209c12030dfc6bc1c9dcc416a03a93f488598877d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | ctoon-0.8.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 421.5 kB |
| Tags | CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d974a69bc90ce25fe52352fcaaa08e68339fea92b14e5badb2ec3cf402d91504
|
|
BLAKE2b-256 checksum How to use checksums |
22ad02aaeb55219c11c022a36299d5fb2b61995c12a0962c831bb9f734ef9db0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | ctoon-0.8.2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 397.5 kB |
| Tags | CPython 3.9 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
b6979605a69414816446605915ef42d83d043d380801a704e1f1dfc03900e515
|
|
BLAKE2b-256 checksum How to use checksums |
f337be87c70449776414cf48b09e03ce3223b5428f59bb67ad59d8f6362badc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ctoon-0.8.2-cp39-cp39-macosx_10_13_universal2.whl
| Download URL | ctoon-0.8.2-cp39-cp39-macosx_10_13_universal2.whl |
|---|---|
| Size | 608.2 kB |
| Tags | CPython 3.9 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
8ed31c9f9e1b2ed1337321a32f5f4e1c342be5fd4033321375a473696dcfc346
|
|
BLAKE2b-256 checksum How to use checksums |
60406a87af55031900aed9a7b3e268ee8375df2259e6785dc263e476125e7cf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|