Skip to main content

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

Project description

CToon

CToon Logo

License: MIT C C++11 Go 1.21+ Python 3.9+ CMake 3.19+

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, and Go. 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}

/* Parse JSON */
auto jdoc = ctoon::document::from_json(R"({"x":1,"y":2})");
std::cout << jdoc.root()["x"].get_uint() << "\n";  // 1

/* Read / write flags */
using rf = ctoon::read_flag;
using wf = ctoon::write_flag;
auto doc2 = ctoon::document::parse(src, rf::ALLOW_COMMENTS | rf::ALLOW_BOM);
auto out  = doc2.write(
    ctoon::write_options()
        .with_flag(wf::LENGTH_MARKER | wf::NEWLINE_AT_END)
        .with_delimiter(ctoon::delimiter::PIPE)
        .with_indent(4));

Python

import ctoon

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

# file I/O — accepts path strings or file-like objects
ctoon.dump(data, "out.toon")
data = ctoon.load("out.toon")

with open("out.toon", "w") as f:
    ctoon.dump(data, f)

with open("out.toon") as f:
    data = ctoon.load(f)

# JSON
json_str = ctoon.dumps_json(data, indent=2)
data     = ctoon.loads_json(json_str)
ctoon.dump_json(data, "out.json")

# flags (combinable with |)
from ctoon import ReadFlag, WriteFlag, Delimiter
toon = ctoon.dumps(data,
                   indent=4,
                   delimiter=Delimiter.PIPE,
                   flags=WriteFlag.LENGTH_MARKER | WriteFlag.NEWLINE_AT_END)
data = ctoon.loads(toon, flags=ReadFlag.ALLOW_COMMENTS | ReadFlag.ALLOW_BOM)

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

// JSON
json, _ := ctoon.DumpsJSON(data, 2)
val,  _ = ctoon.LoadsJSON(json)
ctoon.DumpJSON(data, "out.json")

Build

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc) --target ctoon_test # Run C / C++ / python / Go tests
cmake --build build -j$(nproc) --target ctoon_coverage # Get the coverage of C / C++ / python / Go tests.

CMake options

Option Default Description
CTOON_BUILD_TESTS ON Build C and C++ tests
CTOON_BUILD_PYTHON OFF Build Python extension (nanobind)
CTOON_BUILD_DOCS OFF Build documents

JSON support is on by default (CTOON_ENABLE_JSON=1). The CLI uses it directly — no external JSON library required.

Python package

pip install ctoon # build and install

No runtime requirements.

Go module

go get github.com/mohammadraziei/ctoon

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


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);
char *ctoon_mut_doc_to_json(const ctoon_mut_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_num(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);
size_t        ctoon_get_len(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_add(ctoon_mut_val *obj, ctoon_mut_val *key, ctoon_mut_val *val);
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_mut_doc_to_json O(n) one imut_copy pass then serialise
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
ctoon_doc_mut_copy O(n) deep copy

Thread Safety

Scenario Safe?
Multiple threads reading different documents
Multiple threads reading the same document
Building a document from multiple threads ❌ 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
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.2.2.tar.gz (652.3 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.2.2-cp314-cp314t-win_amd64.whl (290.9 kB view details)

Uploaded CPython 3.14tWindows x86-64

ctoon-0.2.2-cp314-cp314t-win32.whl (270.4 kB view details)

Uploaded CPython 3.14tWindows x86

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

ctoon-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (395.4 kB view details)

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

ctoon-0.2.2-cp314-cp314t-macosx_10_15_universal2.whl (568.7 kB view details)

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

ctoon-0.2.2-cp314-cp314-win_amd64.whl (286.1 kB view details)

Uploaded CPython 3.14Windows x86-64

ctoon-0.2.2-cp314-cp314-win32.whl (267.7 kB view details)

Uploaded CPython 3.14Windows x86

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

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

ctoon-0.2.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (396.9 kB view details)

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

ctoon-0.2.2-cp314-cp314-macosx_10_15_universal2.whl (565.0 kB view details)

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

ctoon-0.2.2-cp313-cp313-win_amd64.whl (279.7 kB view details)

Uploaded CPython 3.13Windows x86-64

ctoon-0.2.2-cp313-cp313-win32.whl (261.8 kB view details)

Uploaded CPython 3.13Windows x86

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ctoon-0.2.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (396.9 kB view details)

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

ctoon-0.2.2-cp313-cp313-macosx_10_13_universal2.whl (564.7 kB view details)

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

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

Uploaded CPython 3.12Windows x86-64

ctoon-0.2.2-cp312-cp312-win32.whl (261.8 kB view details)

Uploaded CPython 3.12Windows x86

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ctoon-0.2.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (397.0 kB view details)

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

ctoon-0.2.2-cp312-cp312-macosx_10_13_universal2.whl (564.8 kB view details)

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

ctoon-0.2.2-cp311-cp311-win_amd64.whl (279.8 kB view details)

Uploaded CPython 3.11Windows x86-64

ctoon-0.2.2-cp311-cp311-win32.whl (261.9 kB view details)

Uploaded CPython 3.11Windows x86

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ctoon-0.2.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (397.0 kB view details)

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

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

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

ctoon-0.2.2-cp310-cp310-win_amd64.whl (279.5 kB view details)

Uploaded CPython 3.10Windows x86-64

ctoon-0.2.2-cp310-cp310-win32.whl (261.6 kB view details)

Uploaded CPython 3.10Windows x86

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

ctoon-0.2.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (396.7 kB view details)

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

ctoon-0.2.2-cp310-cp310-macosx_10_13_universal2.whl (563.5 kB view details)

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

ctoon-0.2.2-cp39-cp39-win_amd64.whl (279.9 kB view details)

Uploaded CPython 3.9Windows x86-64

ctoon-0.2.2-cp39-cp39-win32.whl (262.1 kB view details)

Uploaded CPython 3.9Windows x86

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

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

ctoon-0.2.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (396.7 kB view details)

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

ctoon-0.2.2-cp39-cp39-macosx_10_13_universal2.whl (563.6 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for ctoon-0.2.2.tar.gz
Algorithm Hash digest
SHA256 bc63fd8ac4e7b6fb8bc5b044ce6a7796893113144745cb81e879187835a3b28e
MD5 f4012b5e5e7ae0344f985059fa46abfc
BLAKE2b-256 d1cd0aa25e988795d7e9c196a6d4219a2a6c26eea7bec9e52819a0add0338189

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 290.9 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.2.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 ba6963b893b5003f88c089d7d435e21514fc1edd00a3f995ee689a7d80ea3419
MD5 b15deb60ba805da3e16065da5c923b9f
BLAKE2b-256 f8492d27f12545411090f77d6068f472a388ed9cc26f7aa2592275763febced1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 270.4 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.2.2-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 796a99d4a2fd55e48f1cfaeac341eee170a59ea3e4bcbebbf8ff2de6eee22aad
MD5 983d1324851323c04f3023a24c847bfc
BLAKE2b-256 6ac2b53a9abe0d5507538c3742c6c25b98ab5ebed79ffcb2982b7214b7c41f65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4e3342e780b243ffbcee500eb6eb43a4a114d8baac063890e39ed34ed953a38d
MD5 758879ba0239576708e6f41c2aed3a0b
BLAKE2b-256 d1a3342bf93fb3d10207d8d674251d564a2d7e7da5cac2ab2fc033e22037d54f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27797ec25a9934faa6c16e9d24d666098c1241db5a65eda7b9dd1c094ed278be
MD5 cf8435c1533db708c83a2b88250c52d4
BLAKE2b-256 c8ad5fdd4ebd7bc6df9eac535145e8b7098a77ebf68a22b15018b9af01360b04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 795a1cbbaec9fc3d5ebc0e3037c5a8a158da4fe2327f97bdca8c7a2fe9701cab
MD5 237365ccbbda1794f455a8062242063d
BLAKE2b-256 8f7af6dda0a354c4f456a7ecb579579bb5139a18380bcf24c049c0783d9c66e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 286.1 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.2.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 13185fcbbed4eb193e6e619672b364b0ea5a6cd79af1eb512fd440920a4d93a4
MD5 78f9f09715c42e47ec6266bc01ba0d95
BLAKE2b-256 4ee854a3368135ada81853a299c11a7933bdd32df428c30c3f3c59879e45398e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp314-cp314-win32.whl
  • Upload date:
  • Size: 267.7 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.2.2-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 310ff38e17fd3c17837e534fe7291dd6b3c67c472373fdd12bbecb7ee0626b72
MD5 63350933c3689df3f5093e6a7767c24b
BLAKE2b-256 f21ba800fa846515fd4dfc5932d0c2268c67b63504674899763b7638a7cd9a87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6f29465b32a681534a14e1bcd576640c3def2d7f86ab661afac9a42cf98b2574
MD5 53dd1a64ff7c022530d7644ad84dc70f
BLAKE2b-256 e3ab475aaa35725762a676767b15d33400e5dd68f10e3bcd879c0bc8692e2eb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38c5b478f9d8bd902a9a5b1443df677931c82604df4a755f074049df2f9e8ca4
MD5 b2ee38acbc4d434b7e3e92cffc10d7f1
BLAKE2b-256 9496196289feb4e9d141e21916a2c6d9d2de732fc261e88766bfd439ea63ae03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 2e45ef6cd711c9ece03517933936e2d559021e521942270e00459a1ca6fc86bf
MD5 578390fde599fde42a615fdeb0e9cae0
BLAKE2b-256 9451df5f82032681f8de9e581c487e5629472f9c0448a67ef383f6d051f428aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 279.7 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.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 986283d1e0e2dede283ff2b8c32ee3a6e2a7bab256c880cc3d0696e444413b89
MD5 016eb675c4f37ad05cac5a3b1dc7b2b0
BLAKE2b-256 bf29a5e5b77723b2e9f37deab273b1a668b29ffbf08d4c2e5f5a35c74046ca6b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp313-cp313-win32.whl
  • Upload date:
  • Size: 261.8 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.2.2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 2da704ae30431d6a196bbf691e51b950c2bb72c4e3f188f115d61695b155e149
MD5 b3f18258dfb83736b387da7e042ade35
BLAKE2b-256 a698450b0e95ddd88c5f2219b32f96c5c51b22418f29fbe0dd6b0d45bc7908af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5960fed7eb952b8d2c3f07165b3d7cb97b2c37eae8b15be0803a86646eb868dc
MD5 a205bcf3f1e6f51690c2b5bf3302f058
BLAKE2b-256 221582d53b1e0390653493205fd5e778c5d161c9c4c199524d103bb62418d5ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1acff0ddf562bb7bfb4586a97396f4460558f66a4645678fc2a83b36525d55d
MD5 91653d6adb14cb8c4f5a8de9ef13031a
BLAKE2b-256 f8649ac41f5d012c8695799211559b15cd37bdfbfacf3ae699ea526e43f720fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 eaa8a54c1a50911efc0f92c69e989960afdd9fcf81e8ec029a89f1c4713eff27
MD5 0e2cdcc48ca6c8a06d794d41f97efe94
BLAKE2b-256 dc1a3ddf628c5d4d407ee45f67d98430deb57c1d143b2f778f7a96f9562ab9c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-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.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 76228c27ac26944b590f12b0ac839fb219f94d15374f67a1ee69969322e0c0b3
MD5 ca038ee53a0459ab9c020eea3ec520f5
BLAKE2b-256 f6d47b55fda670c834be25731d677de1ae4c844bfffd41aa5c003f37d557ec02

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 261.8 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.2.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 ba733fee8c19777e6a4096e4cc6202bef22c4d7cbebefc54ea848aebb19cc7bc
MD5 ae4c0303c6052e36b230f42e8d59ee5c
BLAKE2b-256 f120c8b43c32fa7da284fe7c127a53fa2f91241e709bb400387d1b12291d9bb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b54fb3d82ac03f399176dd14cfa9129bde66cd280e40ec47811dfa48f6113980
MD5 16fde66aae3c1e4a10b93f01ec0d7590
BLAKE2b-256 fe1da7b6f950240a67b3144d149c0723fcfb58c655f246c7905075f9c762c820

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed394568a66cf0453d676d9880a6e2769f8d19fd71a29f4a2b1332692e94b042
MD5 07a38fad36c988114752313bb7bcaffb
BLAKE2b-256 9adbae681e058c7011d9f453d808b71f6e4a60d94b42c80d82242f332bca073e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 43904aae4fa6fb35636e0be40e03a59957c6b0dacb4a768db9c1ecc8311b948b
MD5 9d718935946c6666c4f6dd3e97512ae3
BLAKE2b-256 75e98db5edd5e1ab8150428e0386210ef8cc692c4c6c9aef3c2f33d6861b0fe6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 279.8 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.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c0f7faa72fafc7075ec508e1a2a8b7082d142c2edd2acf1061465e9dfebe34e4
MD5 e2e9002558496ee5fa0057413ad24e31
BLAKE2b-256 32140f66b7a25eac846db464663018761b2eff961415dc139603bb75d953eefd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 261.9 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.2.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 16332432cfeb4455c4dfe54503569fcd74601fbd2c701ac19775f33d00eafb6c
MD5 29acd3a50d9bc72e9a6154cf1ffbd90d
BLAKE2b-256 7d87d23b14130d9e1bf42ca6bf796cd29f65790f83ce265f65d9798ab6c4cc3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 550a86d257e52cf65913fb07de1263fbb9ec865a8fd8298988fce2731d69dfa5
MD5 7d0d63750fe8882fbcefd78724269031
BLAKE2b-256 ad93890aeaef108567314d39e143833b9eb629526c1cdb72302f8b33cdcf808f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2b1dc678e991ed93814ce274637c5a1d8de15a0db644ffb65775820821da8819
MD5 80b710ee5631ccfe2445ae56f2716256
BLAKE2b-256 ac301bc45b876ec47422e7419b026c3b8a26a0729b838370e0d6f088486b7196

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 8cad79587dd3f3960543b4cf912203766066322082fdc924d21ebd492574daec
MD5 0d47ca5163b0452bb22bc088a6896d3c
BLAKE2b-256 e4b5dba354e579f675def453f6b42c2c45fb0137042a97967737dbd546e11b85

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 279.5 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.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ce61ed83839bcdfb268108e99e44d20a6bbd3a5545ac15081b527d04bf4a7d84
MD5 4aaf89c5081f9dfcbd9c393b3c84f92a
BLAKE2b-256 048320f648d8702a0633803eb8eafc18ccbc34bc699332bb995713e9029db72e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 261.6 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.2.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 40217a4fac5980cae398030acd61bde4933e873939dbaa1634b7bffefe7374d7
MD5 8b31fd4be36b0e9969fc03ee5c99340b
BLAKE2b-256 3ac5f12b1bda022c4cae58da6142ed67ae441be4005ff590776cf9bd46630276

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e0c06cee26ca2a38112f87c368b451420821ae512a38c77936f26a030af7a6c
MD5 bc8a5c2e441f416d2050a41db0623b9e
BLAKE2b-256 2a6c8c6a63e5b0d0f4abb0673b6eaad3c187cf577e0bda0fdfe514fc01301e67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 58e278af43f07b8c0e3e0167e216cc8ed3778229610a62275c80ead743c60c8a
MD5 1d4282fac0d22c6ec3ab7d441013c86a
BLAKE2b-256 f00865fc0fb1cae2cd1c36c2177f7101525b2af3b2438e3ffcb95bb219a9c650

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 638035a4d20aa55de314e36c0d3ceccda1988e6455040ab0edb32ccb083f5b9b
MD5 68b00a2efe822238d2a943aee089befb
BLAKE2b-256 09505e14319d1a73e2c919e6488f020c2516a0d4988e8ac801f9abead6144da1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 279.9 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.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a68c219e17878a83b461241f8b4e987f43532af0e3e47312c293ca21771f7e9d
MD5 7835d0deddf3649fed256fedc2382d4c
BLAKE2b-256 919b1ff35bd8a16495f883045d142be919bb360443d78554e6c41152aa1d8911

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 262.1 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.2.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 2d3808e1cfbad8198146648c1029787b2c183eb1d5f1449960e5a9b8fa816893
MD5 b67b943c667c289fd74b4daaa6f25b88
BLAKE2b-256 d647812ccc204c3f98c3b580c8f9a475f98048e86f2cf3e398383a76fbd46d60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3746da06e98f3d67c5f7bb7980e26c81290660538d953c768aeb8c192eba7ef3
MD5 bb0ef285d80677a313c254b0a0504244
BLAKE2b-256 0211d9c7700390d935bd78507593e693766bd27e318e20f64d2a743e1f7dac28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea19291290b412a4dd90344df526a9b91c458611ae6d2d0658c52987306083dc
MD5 6b92d73e3a94b2a8208acdb379aa8bcf
BLAKE2b-256 fa775cf25952e955f5a5ebc9a176c0e7b5e293046396afe9a252a1bccada1d08

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.2-cp39-cp39-macosx_10_13_universal2.whl
  • Upload date:
  • Size: 563.6 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.2.2-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 4eff2886ce86c46cdd46a4983956ec5c3a2c0854f797a1bc961000e55cc14337
MD5 bfa89c7a933b1c29017bfccdf95c497f
BLAKE2b-256 d822a3f2ea4e26bd30e518a9503cf216c0499ee4679adbc2bc5f6113098db2b2

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