Skip to main content

A C++ TOON/JSON serialization library with Python bindings

Project description

CToon Logo CToon

CToon Long Logo

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++, Python, Go, and MATLAB. 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

CLI

cmake -B build && cmake --build build
./build/ctoon data.json           # JSON  -> TOON
./build/ctoon data.toon           # TOON  -> JSON
cat data.json | ./build/ctoon     # stdin -> TOON

C

#include "ctoon.h"

ctoon_doc *doc = ctoon_read("name: Alice\nage: 30", 20, 0);
ctoon_val *root = ctoon_doc_get_root(doc);

ctoon_val *name = ctoon_obj_get(root, "name");
printf("%s\n", ctoon_get_str(name));     /* Alice */

size_t len;
char *toon = ctoon_write(doc, &len);     /* caller must free() */
free(toon);
ctoon_doc_free(doc);

/* JSON output (requires CTOON_ENABLE_JSON=1, on by default) */
char *json = ctoon_doc_to_json(doc, 2, CTOON_WRITE_NOFLAG, NULL, &len, NULL);
free(json);

C++

#include "ctoon.hpp"

/* Parse TOON */
auto doc  = ctoon::document::parse("name: Alice\nage: 30");
auto root = doc.root();
std::cout << root["name"].get_str().str() << "\n";  // Alice
std::cout << root["age"].get_uint()        << "\n";  // 30

/* Serialise */
std::cout << doc.write().c_str()    << "\n";  // TOON
std::cout << doc.to_json(2).c_str() << "\n";  // JSON

/* Build a mutable document */
auto mdoc = ctoon::make_document();
auto obj  = mdoc.make_obj();
mdoc.set_root(obj);
obj.obj_put(mdoc.make_str("city"), mdoc.make_str("Tehran"));
obj.obj_put(mdoc.make_str("pop"),  mdoc.make_uint(9'000'000));
std::cout << mdoc.to_json(0).c_str() << "\n";  // {"city":"Tehran","pop":9000000}

Python

import ctoon

# encode / decode
toon = ctoon.dumps({"name": "Alice", "age": 30})
data = ctoon.loads(toon)

# file I/O
ctoon.dump(data, "out.toon")
data = ctoon.load("out.toon")

# JSON
json_str = ctoon.dumps_json(data, indent=2)
data     = ctoon.loads_json(json_str)

Go

import ctoon "github.com/mohammadraziei/ctoon"

// encode / decode
toon, _ := ctoon.Dumps(map[string]interface{}{"name": "Alice", "age": int64(30)})
val,  _ := ctoon.Loads(toon)

// file I/O
ctoon.EncodeToFile(data, "out.toon", ctoon.DefaultEncodeOptions())
val, _ = ctoon.DecodeFromFile("out.toon", ctoon.DefaultDecodeOptions())

MATLAB

% Install once (compiles MEX and adds to MATLAB path permanently)
cd src/bindings/matlab
ctoon_install

% Versin / info
ctoon.version
v = ctoon.version
[v, info] = ctoon.version

% Encode / decode
s = ctoon.encode(struct('name', 'Alice', 'age', uint64(30), 'active', true));
v = ctoon.decode(s);
v.name    % -> 'Alice'
v.age     % -> uint64(30)
v.active  % -> true

% Python-style aliases
s = ctoon.dumps(v);
v = ctoon.loads(s);

% File I/O  (filename)
ctoon.write(v, 'config.toon');
v = ctoon.read('config.toon');

% File I/O  (open fid)
fid = fopen('config.toon', 'w');
ctoon.dump(v, fid);
fclose(fid);

fid = fopen('config.toon', 'r');
v = ctoon.load(fid);
fclose(fid);

MATLAB type mapping:

MATLAB TOON
[] null
logical bool
double scalar real
int64 scalar sint
uint64 scalar uint
char str
cell array
struct object

Requires MATLAB R2014b+ and a C compiler configured for MEX (mex -setup C).


Build

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc) --target ctoon_test     # Run all tests
cmake --build build -j$(nproc) --target ctoon_coverage # Generate coverage reports

CMake options

Option Default Description
CTOON_BUILD_TESTS ON Build C and C++ tests
CTOON_BUILD_PYTHON OFF Build Python extension (nanobind)
CTOON_BUILD_MATLAB OFF Build MATLAB MEX binding
CTOON_BUILD_DOCS OFF Build documentation

JSON support is on by default (CTOON_ENABLE_JSON=1). No external JSON library required.

Python package

pip install ctoon

Go module

go get github.com/mohammadraziei/ctoon

Requires Go 1.21+. Uses CGo to call the C core.

MATLAB MEX

# Via CMake
cmake -B build -DCTOON_BUILD_MATLAB=ON -DMatlab_ROOT_DIR=/path/to/matlab
cmake --build build --target ctoon_build_mex

# Or directly from MATLAB
cd src/bindings/matlab
ctoon_install        % compile + add to path permanently

CLI Reference

# Encode  JSON -> TOON
ctoon input.json
ctoon input.json -o output.toon
ctoon input.json --delimiter pipe      # comma (default), tab, pipe
ctoon input.json --length-marker       # items[#3]: ...
ctoon input.json --stats               # show byte savings

# Decode  TOON -> JSON
ctoon input.toon
ctoon input.toon -o output.json
ctoon input.toon -i 4                  # 4-space JSON indent

# Force format (auto-detected from extension by default)
ctoon -e input.json    # force encode
ctoon -d input.toon    # force decode

# Stdin
cat data.json | ctoon -e -
cat data.toon | ctoon -d -

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

Requirements

Component Requirement
C core C99, no dependencies
C++ binding C++11, header-only
Python binding Python 3.9+, nanobind >= 2.0, CMake 3.19+
Go binding Go 1.21+, CGo
MATLAB binding MATLAB R2014b+, C compiler for MEX
CLI C++17

License

MIT — see LICENSE.

Related

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ctoon-0.4.0.tar.gz (687.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ctoon-0.4.0-cp314-cp314t-win_amd64.whl (291.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

ctoon-0.4.0-cp314-cp314t-win32.whl (270.5 kB view details)

Uploaded CPython 3.14tWindows x86

ctoon-0.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

ctoon-0.4.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (395.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ctoon-0.4.0-cp314-cp314t-macosx_10_15_universal2.whl (568.8 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ universal2 (ARM64, x86-64)

ctoon-0.4.0-cp314-cp314-win_amd64.whl (286.2 kB view details)

Uploaded CPython 3.14Windows x86-64

ctoon-0.4.0-cp314-cp314-win32.whl (267.8 kB view details)

Uploaded CPython 3.14Windows x86

ctoon-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

ctoon-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (397.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

ctoon-0.4.0-cp314-cp314-macosx_10_15_universal2.whl (565.1 kB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

ctoon-0.4.0-cp313-cp313-win_amd64.whl (279.8 kB view details)

Uploaded CPython 3.13Windows x86-64

ctoon-0.4.0-cp313-cp313-win32.whl (261.9 kB view details)

Uploaded CPython 3.13Windows x86

ctoon-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ctoon-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (397.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

ctoon-0.4.0-cp313-cp313-macosx_10_13_universal2.whl (564.8 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

ctoon-0.4.0-cp312-cp312-win_amd64.whl (279.8 kB view details)

Uploaded CPython 3.12Windows x86-64

ctoon-0.4.0-cp312-cp312-win32.whl (261.9 kB view details)

Uploaded CPython 3.12Windows x86

ctoon-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ctoon-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (397.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

ctoon-0.4.0-cp312-cp312-macosx_10_13_universal2.whl (564.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

ctoon-0.4.0-cp311-cp311-win_amd64.whl (279.9 kB view details)

Uploaded CPython 3.11Windows x86-64

ctoon-0.4.0-cp311-cp311-win32.whl (262.0 kB view details)

Uploaded CPython 3.11Windows x86

ctoon-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ctoon-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (397.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

ctoon-0.4.0-cp311-cp311-macosx_10_13_universal2.whl (564.5 kB view details)

Uploaded CPython 3.11macOS 10.13+ universal2 (ARM64, x86-64)

ctoon-0.4.0-cp310-cp310-win_amd64.whl (279.6 kB view details)

Uploaded CPython 3.10Windows x86-64

ctoon-0.4.0-cp310-cp310-win32.whl (261.7 kB view details)

Uploaded CPython 3.10Windows x86

ctoon-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

ctoon-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (396.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

ctoon-0.4.0-cp310-cp310-macosx_10_13_universal2.whl (563.6 kB view details)

Uploaded CPython 3.10macOS 10.13+ universal2 (ARM64, x86-64)

ctoon-0.4.0-cp39-cp39-win_amd64.whl (280.0 kB view details)

Uploaded CPython 3.9Windows x86-64

ctoon-0.4.0-cp39-cp39-win32.whl (262.2 kB view details)

Uploaded CPython 3.9Windows x86

ctoon-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

ctoon-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (396.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

ctoon-0.4.0-cp39-cp39-macosx_10_13_universal2.whl (563.7 kB view details)

Uploaded CPython 3.9macOS 10.13+ universal2 (ARM64, x86-64)

File details

Details for the file ctoon-0.4.0.tar.gz.

File metadata

  • Download URL: ctoon-0.4.0.tar.gz
  • Upload date:
  • Size: 687.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0.tar.gz
Algorithm Hash digest
SHA256 37d3aedf5e7f2fc8d031954958b471d5267231af430457b0f91626807fa30b2d
MD5 7c22c5f2eb26e0acb5a25c38f14e2e29
BLAKE2b-256 fcaa06dd4e2b9c4c52f6a47fc7a6a6d7e19f7d965c60aaed93e7d62261668de8

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 291.0 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 e5064e9f59f5af974835d0a1b9f7a73df769a1da0573f74e01da5acf64c11346
MD5 d83d2e077f50c7f5452db258836f480a
BLAKE2b-256 019ccce2090dc3fa394864e71b5270c1a03c9f47687301f8fc7f49ca4bb42e6e

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314t-win32.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 270.5 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 a846d0e76f7e039ba9e7512bd23b6999fc7796a08c4bea3c27bdd37a1d977cc7
MD5 8ef1cc23dab69cfc12f7421236f1caf1
BLAKE2b-256 cf26086bb9e0b7869269f65db1a7d876ffd34239cee53b52acc9cd2d0620b7f4

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f65101fe259392b30e42ff1cc939fbd5470df0db6a870a39388a2712a775639e
MD5 2e7b6725b77e631a9f2f4c750c4cefe2
BLAKE2b-256 44f54623d620a7cce60afcc0e01beb53b6130a5ed19f34e9acb52819affbf826

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 486a24eda18aac2e789d9e16d5d78db96ad457084a2488d2d21bc4759e280a0f
MD5 7dba23e3daca91e6f10b4f203202b780
BLAKE2b-256 d4174b21c4f495f9b6a36e8c0d225fd6e8b924f9c47a22c8653f875fa6d528b4

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314t-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 f00f929754c4459960feba5865dd70e36adde0f00b1a4f53311afa814834df91
MD5 4bdcc317381bf504109fc92390fd2892
BLAKE2b-256 ab0f2740634b63c53c172b33903eaf85f8d4fdeff168a9680ccd08d804428926

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 286.2 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e161f63bb5e698b6095cfa066654a222f623b14a647ddbb2c15382e330f411b6
MD5 44a7f188eee50e38d8f7a256d871127a
BLAKE2b-256 33e317257273e1bdced470fd9ee5bb8052b0b873296f8b01c3b4564a87c53240

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314-win32.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp314-cp314-win32.whl
  • Upload date:
  • Size: 267.8 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 a1473a78052613f5a8aba1debdd67579126a13595a45c562b73b8bef03275f6e
MD5 0df5cfb7e21b8c266ad1a684c1dcdbf2
BLAKE2b-256 4c9a2afad2633a4bb7bad6da2865e17cd5f070c8cb7585abb989d488e2d54035

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f49c6332985f95322a732fef10fe565f7355e17657939d5fefb2b6efe777fe23
MD5 5043b32af127cf46e03e3faceb15cb35
BLAKE2b-256 2ef7b4964c066790dc5a25742d4b394429d7624f31cf4818f5e9bc83fbca0458

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c58341003520e18a5a028d81adde6629c919e4a5f72b38dfe1785eed2514f53
MD5 0eb84a6113d3e2892a51f04a4e6a8c1d
BLAKE2b-256 5d0260229600db851d2c77f0a061a6630132cb746eaaa26a97ed33d299f3262e

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 33b9c769acc5b46336ffee75d6b5f7041f8c291f0ce6ec7ba8128f63d7bc396a
MD5 a2c6df754e78edc041398acb122e98f9
BLAKE2b-256 b1b5aee8266371ba17633db2aaa4eaa5a9032b56342f931c74f574379dbdd32a

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 279.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 29a906498e1ea5ca6e8ca1d018c585187408c5ac86d5da6ebcb655b2f80e9ef8
MD5 41353b3aa8241e338ed274889232689c
BLAKE2b-256 4f3a62f01869eaf9af90b641b802bc3a9dc491b68060218cd326bccdbafc1933

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 261.9 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 f95cb4f6d28b49ee614c01347a2ef47e485e9366b8b89c8284bfd37b2783af06
MD5 8f34a640858ea611f5bec674f4922cb0
BLAKE2b-256 44e9aaa00c1e27de1e30770237ea3e325bd4e231e08c15c94ab3d49463b9c94b

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ce0deadf70f89705402b50d0e2955e57a310fdb5739c9677d9d701d97dc4017d
MD5 87ad9991edee2912b9f2157a9dccbd53
BLAKE2b-256 c06a7e3472b29b5b075e810055b75a340f1c8a2a0a1f20d18b49003e0e79ecbd

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17310f0119514d1ac1d662435e4febe15e1c43ecc4a96021c5c38d9fc2ba214c
MD5 3206819ec42f22df9135fbb5aeefa8d2
BLAKE2b-256 03bbae26fbf3f762d8960e2c580425b2265c62575a856e922ec3f0d76595f168

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 b649bedd40499f96c0925caee6ff50c08726521aa0bf74ba78beb66af11ae001
MD5 29618d7ae33f086ea3c21523f4b5293f
BLAKE2b-256 acdd80247c697d61d270676037869fff023bbd2da92101139f03bea9f69484dc

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 279.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 471f07198277aafe278233b1e937578f0aa2912758196dd0c0809671b139300d
MD5 a44415ea6872d0acb3ac282945e66ca6
BLAKE2b-256 bfb337a8c9ea8e005927192a95338f07ade722a70d9517090f672f65353cfa73

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 261.9 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 977ab27a5822aa6b87f1ded684c20a716caab5bcb89804b454005d599a3d3bd9
MD5 a8206c27e0f7c8db4f47d38749428b28
BLAKE2b-256 c852dda99683120630ab80d0c1de12be39a278b51f3bd0711df167a19f938354

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d16a1f4872fe9a2ece2a181052b37de6c4548999f9f8b4ac74c5fcddcd5c2609
MD5 72d9d0ce9e0a41c8b161b5e2e319f4b1
BLAKE2b-256 e975e20099347795b13866a582eaf3e6f93712f2aa2aa0e75c4ed6a609f85213

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20dca1aa2132bd1e7f34ab3fafc7304288d93dfc2f4aaa9ab44d93848954fd8a
MD5 b4e52c141a7f293dbf69dcbf7f2448f5
BLAKE2b-256 290b7ea8d0345c9e1b7734cab85ffd8da7fa42b5acf697df28e29af3785ed4b1

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3e5d925cf62a23db988205b23a97a31119e0dc2cc37bffd84fe6b621c4a6d2ef
MD5 2b3aea78e8a313e07949cf8990658d78
BLAKE2b-256 6ee5fda857a1f2677bb4b89d6a975bdfeb16d9911d70ab1ccb8ee723a9809ebf

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 279.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7e9079700b4f2c0eeab206410042182df698c53f4d12ba295c7554ca5b3e9aec
MD5 e7e528daee1395f15b6c453a2576bb14
BLAKE2b-256 61d208198d228a5e65d93a11ff844268b313e1a6a54e3f217a1b9a5211f0ea99

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 262.0 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 8185f873f5f9e7023e5957a60ee556c552b5b2a3b9ce830fad4585316f74b739
MD5 4fd7d03364062aab9ccced743c80e713
BLAKE2b-256 57f998c0732cc3d9ea15151db43342d0849544f3eacdbfbf084d6f96a52fffe6

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 008502b68b7a60330c583989390a7cdf0e6c8c690b6d7d26fd86e4fc35d2a6d3
MD5 37d9aa42cc5c8714e9ec37f46ab06563
BLAKE2b-256 a9337b101b5d5560801ccbdc688e1299d8b5f8c9899adb1e6d56828e34bc7729

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d39ba04174e9bf353657f9f9770763ac95880893c52b9174ca2408d8836201a7
MD5 3afe82874fca2c35882c61e4e4be95d7
BLAKE2b-256 bbced19432c24015e39654868878112bec839b23eb0fcae832c20d33998613a5

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp311-cp311-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 e9c576ed0c2739924df01e3e127bc156921fd4e9e0c9b5797ce666c95c74c81a
MD5 3adb503f62151fae46f6df61796218d1
BLAKE2b-256 b03b7079c63e75437465b66cb2d8d6bc0f15224eb7cf2fa5f755638cd57e1671

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 279.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 65e6f31f7338c91375a80e818752a470dff3a58e1778dcee055786d2245384e9
MD5 ec81b5864786be1641454aeb11b5ad49
BLAKE2b-256 0cfc13e2e535d756aa1e2b0524d65295ab9de595380097727381addf9097dc2c

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 261.7 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 23870db7a40d30239aafa6dfead60342bb6c53d76045158c630099b3c5b5a23a
MD5 2646598b8682a75790dc2bbd04668f19
BLAKE2b-256 af5029d77d1ccedde8fbb4b3847ac92ef1a688dd87f6e6a3cce3e656843f57e4

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8b84de6d61296a63ae532e0a278ae776ae63bb2e6502a42866f125b5ccf45052
MD5 9c8c3ecdbf2d89e4eea332cf1d7d98de
BLAKE2b-256 e2bac8b7e644e9f67e779be7d0ffb91f4be231f55d582e919a65e51f28a38397

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5524eb65162fbe6add101e9fabe36251c15ed8156fe0e22adbd673cd4d06032
MD5 2e9cd9517108014b43b85ed02865fd6f
BLAKE2b-256 8c2489601ca5c59391408fe0beb8d1f46bc4683a31851af326b37c950c77382b

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp310-cp310-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 7da599ef4cf0d174e0200954157ff16357262301de0ed9c0f4b1e8d0c20c8443
MD5 a5a114e116644494efce6753c2fd09a5
BLAKE2b-256 5749a0233eb02c6f6485eecff18f276bc18c9403ed517a942f3927dd11aac898

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 280.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 26d8a84fb6c22e6d7b2c2941480afdaf7ad52459c016c182aa522a6d4ff70c60
MD5 4899ac62324e5c520ef5cddedf1f1361
BLAKE2b-256 268590ff98a1d802d57f2696a60ec086bb7a2127d081cdd9803bcc61df990064

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 262.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 06b2bdbe4154512f8620649ac9e4229c43b24886e2d353a19cd87fb99ae31528
MD5 caf34066a7a0b0b575a8b259cfebecce
BLAKE2b-256 582d792d4f25a8a18b4d10885baf71d80921b0378f7c8f53ddfa8fd2fa3c0b40

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 29672f66bd1315bbd8ea4d0656a43697d6ab82dac90438bb4239419ab7ddef6a
MD5 464466c56e9fe08ac3d17c63b6147404
BLAKE2b-256 68c9981ab84e6a51d1497280321d887f1c31e50d8737cfe1ed5034d19f90abaf

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ctoon-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 63e9982781fa55cc7e1af7f291239212610b5f638b9cd6f0f237920634d2782e
MD5 735b7e969d01a64b2facac8b712529cb
BLAKE2b-256 db549c96154bc670c5d54f6cc5d49b80d57eaf0ed84b4f626885e1b518a9d7b3

See more details on using hashes here.

File details

Details for the file ctoon-0.4.0-cp39-cp39-macosx_10_13_universal2.whl.

File metadata

  • Download URL: ctoon-0.4.0-cp39-cp39-macosx_10_13_universal2.whl
  • Upload date:
  • Size: 563.7 kB
  • Tags: CPython 3.9, macOS 10.13+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctoon-0.4.0-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 fb269ccd11fd18c9d054f6e8ecff5742525be8bdb55920916fefa229c4039c02
MD5 f5407d73d56a112f3299f6fbab7feace
BLAKE2b-256 523ab6d446d5ae47adc0c5527df653aa4b5be4d76bf2b3c93bd35c328988ebd8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page