Skip to main content

CToon Logo CToon

CToon Long Logo

Documentation License: MIT CMake 3.19+ TOON spec v4.4.0

C C++11 Go 1.21+ Julia 1.7+ MATLAB R2014b+ Python 3.9+ Rust 1.70+ Zig 0.16.0+

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        v0.9.0
)
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

→ Full C++ API reference

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)

→ Full Go reference

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

→ Full Julia reference

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

GNU Octave 8.1+ uses the very same binding. There is no prebuilt Octave binary: build once with mkoctfile (Debian/Ubuntu: apt install octave octave-dev; needs a C compiler to build only), then load it with a single addpath:

cd src/bindings/matlab
ctoon_build('/path/to/ctoon-octave')
addpath('/path/to/ctoon-octave')

Or, without a checkout: python -m ctoon.manager octave install (builds a release's MATLAB source distribution).

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)

→ Full Python reference

Rust

Requires Rust 1.70+ and a C compiler on the build host.

cargo add ctoon

or add it to Cargo.toml yourself (the crate is on crates.io):

[dependencies]
ctoon = "0.9.0"
let val = ctoon::loads("name: Alice\nage: 30")?;
println!("{}", val["name"].as_str().unwrap()); // Alice
let toon = ctoon::dumps(&val)?;

→ Full Rust reference

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);

→ Full Zig reference


TOON Spec Version

The toon-format/spec release a build targets is exposed in every language (spec §13: implementations SHOULD declare it). It is resolved at CMake configure time and recorded in supported_spec.conf; the bindings read it from the C core, so it can't drift. Each language gives you the version (4.1), the tag (v4.1.2) and the release date:

Language Version Tag Date
C CTOON_SPEC_VERSION_STRING CTOON_SPEC_TAG_STRING CTOON_SPEC_DATE_STRING
C++ ctoon::spec::version::string() ctoon::spec::tag::string() ctoon::spec::date::string()
Go ctoon.SpecVersion() ctoon.SpecTag() ctoon.SpecDate()
Julia CToon.spec_version() CToon.spec_tag() CToon.spec_date()
MATLAB info.Spec.Version info.Spec.Tag info.Spec.Date ([~, info] = ctoon.version())
Python ctoon.__toon_spec__ ctoon.__toon_spec_tag__ ctoon.__toon_spec_date__
Rust ctoon::spec_version() ctoon::spec_tag() ctoon::spec_date()
Zig ctoon.specVersion() ctoon.specTag() (major/minor/patch) ctoon.specDate()

In C and C++ the tag is also available as numbers (CTOON_SPEC_TAG_MAJOR/MINOR/PATCH, CTOON_SPEC_TAG_HEX; ctoon::spec::tag::major() etc.).


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_OCTAVE OFF Require GNU Octave + mkoctfile (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_octave, 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_octave, ctoon_coverage_python, ctoon_coverage_rust, plus ctoon_coverage_total (merged C/C++/Python/Go/Rust/Julia/Octave 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_octave, 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.

Metadata

Release files for ctoon 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ctoon 0.9.0
File Size Uploaded Provenance
ctoon-0.9.0.tar.gz 1.1 MB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for ctoon 0.9.0
File
ctoon-0.9.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
ctoon-0.9.0-cp312-abi3-win32.whl CPython 3.12 abi3 Windows x86-32 Details
ctoon-0.9.0-cp312-abi3-musllinux_1_2_x86_64.whl CPython 3.12 abi3 Linux musl 1.2+ x86-64 Details
ctoon-0.9.0-cp312-abi3-musllinux_1_2_aarch64.whl CPython 3.12 abi3 Linux musl 1.2+ ARM64 Details
ctoon-0.9.0-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.9.0-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.9.0-cp312-abi3-macosx_10_13_universal2.whl CPython 3.12 abi3 macOS 10.13+ universal2 (ARM64, x86-64) Details
ctoon-0.9.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ctoon-0.9.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
ctoon-0.9.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
ctoon-0.9.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
ctoon-0.9.0-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.9.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
ctoon-0.9.0-cp311-cp311-macosx_10_13_universal2.whl CPython 3.11 CPython 3.11 macOS 10.13+ universal2 (ARM64, x86-64) Details
ctoon-0.9.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
ctoon-0.9.0-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
ctoon-0.9.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
ctoon-0.9.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details
ctoon-0.9.0-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.9.0-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.9.0-cp310-cp310-macosx_10_13_universal2.whl CPython 3.10 CPython 3.10 macOS 10.13+ universal2 (ARM64, x86-64) Details
ctoon-0.9.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
ctoon-0.9.0-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
ctoon-0.9.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
ctoon-0.9.0-cp39-cp39-musllinux_1_2_aarch64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ ARM64 Details
ctoon-0.9.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
ctoon-0.9.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
ctoon-0.9.0-cp39-cp39-macosx_10_13_universal2.whl CPython 3.9 CPython 3.9 macOS 10.13+ universal2 (ARM64, x86-64) Details

Total release size: 26.1 MB

Release files / ctoon-0.9.0.tar.gz

Download URL ctoon-0.9.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a283801a6cf5a2e3ab062978151f64cde5c4394b4aced9f65586c33db63fa80d
BLAKE2b-256 checksum
How to use checksums
ea85f53c23f70c0e51e9834ac4e59eedd8c4f05ce8167c2c3c876df0da723128
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.9.0-cp312-abi3-win_amd64.whl

Download URL ctoon-0.9.0-cp312-abi3-win_amd64.whl
Size 540.8 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
2c056d6fad7e3ae8b9f9ed47055c09d1aaa8431fbed7038039df17d47771b159
BLAKE2b-256 checksum
How to use checksums
00b3ab4db2e6f9093cbe74e8b02b3c341976d1ed7ffad222da4782809a3e2124
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.9.0-cp312-abi3-win32.whl

Download URL ctoon-0.9.0-cp312-abi3-win32.whl
Size 517.8 kB
Tags CPython 3.12 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
9d766c5630328bb98350c6cfe63a395557c34d3a9e32bd9d52144a8ded8521bd
BLAKE2b-256 checksum
How to use checksums
2f6a744f27c93478382fb50da3946ce0ca6d2345c1a2d8b9ed9b950b0834d16a
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.9.0-cp312-abi3-musllinux_1_2_x86_64.whl

Download URL ctoon-0.9.0-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
f1f680bb483bf7308425e490332563eedac658a6c7d4c858833737f12dcd039d
BLAKE2b-256 checksum
How to use checksums
3668e6aa3802d530471c60a5600ec47e17a2c7f835d3093028d9e3e2e7cfe8a9
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.9.0-cp312-abi3-musllinux_1_2_aarch64.whl

Download URL ctoon-0.9.0-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
ee716757d5eaabefcb0496da1fed8a38610db0e267c3e684c7a5f3cdd6041fef
BLAKE2b-256 checksum
How to use checksums
8f9e59d0d038eef6b46082ea60bb428d6db15488e5377c5263bf0b1230f2862b
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.9.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctoon-0.9.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 452.1 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
713c1fa95ebc9db8a432d98452788a7187ef47e9f0da6a4a15f806aaf28c8c06
BLAKE2b-256 checksum
How to use checksums
8cbc243aa2228b97d1e77486a61f3ce8c329693c380fbdd1d3b8eab1a34ed7d9
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.9.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL ctoon-0.9.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 423.6 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
8f553cbcb9c5ee4b96390cb0c4a64bebe1c048014135905a79cd58fe02983b1d
BLAKE2b-256 checksum
How to use checksums
153ac6b9ffd628d866e98b9c1407f1ad89785953a252285a5ce05e0e12a99981
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.9.0-cp312-abi3-macosx_10_13_universal2.whl

Download URL ctoon-0.9.0-cp312-abi3-macosx_10_13_universal2.whl
Size 655.1 kB
Tags CPython 3.12 abi3 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
caec169da94d41af3f216d70e1558e61c2b43fa751e7600e1b346c6306fa9d0c
BLAKE2b-256 checksum
How to use checksums
a34578e832f2ffdb3fd7e8a41c6402a10a772bd08504fb8fa450e325dbc5de29
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.9.0-cp311-cp311-win_amd64.whl

Download URL ctoon-0.9.0-cp311-cp311-win_amd64.whl
Size 541.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6b27c044d4e8c73d556238ebcabfdf3db15b3fc730c4b720ec44831c4f9adda0
BLAKE2b-256 checksum
How to use checksums
e9b48a69df82470f9eb68afe58e3affdf29956bb46b841066be9f5db85a65b36
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.9.0-cp311-cp311-win32.whl

Download URL ctoon-0.9.0-cp311-cp311-win32.whl
Size 518.5 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
13ecc2449bd8307a9b0a742963bea7de929a5facbb38b0a236f7ed8089ab09d1
BLAKE2b-256 checksum
How to use checksums
43b5cb7eaea593d2108e9767eff820d5f1ecc4f903142db02e272666faaed2ba
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.9.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL ctoon-0.9.0-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
aa851fec0990210c68847249b9d8f262d9d49d4e7b149ab157fda897e94866f1
BLAKE2b-256 checksum
How to use checksums
4717f3d0de3bbe87e5dcbdfe9fb269f9a3892e9e8aab25aa9eb4978435e56861
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.9.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL ctoon-0.9.0-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
545c17677737940c4f8426429d60fa1d3de1d964522b17edcfd254e4f626c009
BLAKE2b-256 checksum
How to use checksums
035e5d2aec2e0599d3b72155148b0751a324c3a110f3071a7c27572a769ae028
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.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctoon-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 456.2 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c93cc5114728758e387853a99e170a09fd3c1ac6105168d2abdd1c8f0506706e
BLAKE2b-256 checksum
How to use checksums
e7e313f2ba668bc6be7c3c9d798e48d971076cf321ab50c31aec40b5a81900a0
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.9.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL ctoon-0.9.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 427.7 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a0e4c11965af72cabb9fdfa4f8b8eaa4a61d943a87bba3e0c319c6353d4314a7
BLAKE2b-256 checksum
How to use checksums
301e92f63a89507fb44857a344953e7cc3361b538c7e4352d02bba29448592f4
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.9.0-cp311-cp311-macosx_10_13_universal2.whl

Download URL ctoon-0.9.0-cp311-cp311-macosx_10_13_universal2.whl
Size 659.5 kB
Tags CPython 3.11 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
0b4c3bac4ba527bb12244308a5993921f98e8d31b6fa3372129c94955b567ab1
BLAKE2b-256 checksum
How to use checksums
24f266dedf9d9b4856c6a02eb89889b5fc3adbbbcefcbc5e4dbba51eeef4c064
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.9.0-cp310-cp310-win_amd64.whl

Download URL ctoon-0.9.0-cp310-cp310-win_amd64.whl
Size 541.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
323c890b01312586896a986506842aade5f73f21fb37f450e6749971bb696800
BLAKE2b-256 checksum
How to use checksums
16a1404b2a98e5c13ec08f5fe9480c4373fb46db90192cfb2ff93c22c7e2e72d
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.9.0-cp310-cp310-win32.whl

Download URL ctoon-0.9.0-cp310-cp310-win32.whl
Size 518.3 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
78aaf1109389724712398d0cd3f996da6794d00c4935ea881ee14dd409057944
BLAKE2b-256 checksum
How to use checksums
aba3890d79471419d18e60bed0dd46128371e41a623765a0598934ef65c01142
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.9.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL ctoon-0.9.0-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
fca606ac902ea6d554f18a7889f2bdc1b5866e3ada701109e622fa546229e66c
BLAKE2b-256 checksum
How to use checksums
97d749e3d775621585e32d5aaf219ea66cbc2e72cac0e49a47e4becf4c05c85a
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.9.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL ctoon-0.9.0-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
2961c4ff435040961c7a25dbcad193a6b540cc15780af19fd3f7caf2fa3c960d
BLAKE2b-256 checksum
How to use checksums
bb7ede9beefaadef62a4443934a2f507a5003f1f5beed9e694c3999d886fb6ee
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.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctoon-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 455.7 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c05e65df151ae30cf8ec08822b5b8b72504f5e58b413bf6335c384b9162f0b34
BLAKE2b-256 checksum
How to use checksums
1b80932995a5844a4f41ff76d085ec6ec76ac114705ee8567f5f83f5bafd02fb
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.9.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL ctoon-0.9.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 427.4 kB
Tags CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2e78d91ca94bfe0e9307179aa96c1814aa7359515f89e81f20a468fd52436465
BLAKE2b-256 checksum
How to use checksums
228f3d1244c9d14887477c8ee2d542c59f0d2402d7a4b321d7c0dabf88aeb913
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.9.0-cp310-cp310-macosx_10_13_universal2.whl

Download URL ctoon-0.9.0-cp310-cp310-macosx_10_13_universal2.whl
Size 657.7 kB
Tags CPython 3.10 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
d03f77bcf1444b8e92f0df1d67650b2a7d344aa268f14a0bc33357d85ca4568b
BLAKE2b-256 checksum
How to use checksums
e0c07c9ed6d79c0661344357eb7daeebc5da75a3e060d1737a916f7c1fc57e18
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.9.0-cp39-cp39-win_amd64.whl

Download URL ctoon-0.9.0-cp39-cp39-win_amd64.whl
Size 514.2 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
96ed90ae1ce842adbde551fece4a8ed6537eb899373c33c7ad5dd2c58c2635ff
BLAKE2b-256 checksum
How to use checksums
6bb31a38c9dd51d308dd4908e6635279aa0dc9ffacbe086c7612e4ec45bfedfc
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.9.0-cp39-cp39-win32.whl

Download URL ctoon-0.9.0-cp39-cp39-win32.whl
Size 493.8 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
e845eabc7ffe4ddd6353a698e9fc9d8c69b8d1d5112b0db21536a58929ccb53b
BLAKE2b-256 checksum
How to use checksums
bee1e0c95c6ffc3c337ffaa821b730f0b534466fcbea28963af96162a0d1db13
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.9.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL ctoon-0.9.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 1.9 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4cd2cb187e1add6ee6477dc986ea05b0f7292a6b07a1e5cff9adb827df7b172c
BLAKE2b-256 checksum
How to use checksums
9440ed49a705eb0a60a97c0826fa9d0c05d9c6aa1d7262b7a932dabdee0f695f
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.9.0-cp39-cp39-musllinux_1_2_aarch64.whl

Download URL ctoon-0.9.0-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
82184349fc28893f01164da7d2bd3413ef6fda2575f59fd105453e67e22374ae
BLAKE2b-256 checksum
How to use checksums
53c1fa5962666d9e3226b11d57323788d792f0d87dfa66090c655ef7399f66ce
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.9.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL ctoon-0.9.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 449.8 kB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1b5121eed15b67cc0980904782e77482461abe90fe7c2d33448818bb15b48bf1
BLAKE2b-256 checksum
How to use checksums
13100cd1596739fe94c24c572dd98609bbc743909e4f8dde29a9f4b3c3d67a76
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.9.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL ctoon-0.9.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 422.1 kB
Tags CPython 3.9 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
25eb4bf824919a607c69c50b30dd457a115160c804456ab69cd097708b440e7c
BLAKE2b-256 checksum
How to use checksums
b5a79669d3f847136b94e476337dbc9afcd14ed7741b4b0ff4eabecb9694c1a5
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.9.0-cp39-cp39-macosx_10_13_universal2.whl

Download URL ctoon-0.9.0-cp39-cp39-macosx_10_13_universal2.whl
Size 641.6 kB
Tags CPython 3.9 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
2adcb714d70426e08c40aec92ad46af81f16c6c2d48c4b298d425b2a3aafe5b6
BLAKE2b-256 checksum
How to use checksums
3e415187923984070c8380abad36162350d033e3bc77fc782acd654ad720474b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for ctoon 0.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page