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.3.0.tar.gz (683.9 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.3.0-cp314-cp314t-win_amd64.whl (290.9 kB view details)

Uploaded CPython 3.14tWindows x86-64

ctoon-0.3.0-cp314-cp314t-win32.whl (270.3 kB view details)

Uploaded CPython 3.14tWindows x86

ctoon-0.3.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.3.0-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.3.0-cp314-cp314t-macosx_10_15_universal2.whl (568.7 kB view details)

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

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

ctoon-0.3.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.3.0-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.3.0-cp314-cp314-macosx_10_15_universal2.whl (565.0 kB view details)

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

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13Windows x86

ctoon-0.3.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.3.0-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.3.0-cp313-cp313-macosx_10_13_universal2.whl (564.7 kB view details)

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

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

ctoon-0.3.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.3.0-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.3.0-cp312-cp312-macosx_10_13_universal2.whl (564.8 kB view details)

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

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

ctoon-0.3.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.3.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.3.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.3.0-cp310-cp310-win_amd64.whl (279.5 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

ctoon-0.3.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.3.0-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.3.0-cp310-cp310-macosx_10_13_universal2.whl (563.5 kB view details)

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

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9Windows x86

ctoon-0.3.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.3.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.3.0-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.3.0.tar.gz.

File metadata

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

File hashes

Hashes for ctoon-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9e15e2fbd37e99a7822f8eb3a4961e565ece50588e3699bfb1d64f1500cfdd37
MD5 60989ff6a625882f5677d12802b89357
BLAKE2b-256 b65793fa16729261187c82914092b2112761c23f5f39f4f4addd19be515bd917

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 d68e125a7a069451632220cd66cbb99cece7f6b612d7c8a5fac07b7fbb28acae
MD5 de841c18418544ca2b162b643226bee9
BLAKE2b-256 13f03913ff810b756fb240cfa3c5c786faf869a474fcf6271ee145927c8661e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 270.3 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.3.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 c5bea7cad2ba348acbce2d6c328e28d00c48a06036c66431741eda47ede079a1
MD5 74c2567a977555ec3d4f5b5531884919
BLAKE2b-256 f4d71c8ae9b193d99408fd9b49ab4286c61440e20daa14f64f733f61f2cfe977

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 892befb8f7a5fb0ca272e648c4d4996c74c7b6cfe511b4796f5a13d91dd2718b
MD5 afca3e410fe63eaf00867c3aab717d8c
BLAKE2b-256 0a2026bb614d6a0020edeb13d9011ada6247a224572a274cc4d4e70328e3e2b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b62d251e8343ec4c414780d3260a974d93b56caf220ea02f5fe472c51eee839
MD5 60f259c61a623064c1c62fbda65558d7
BLAKE2b-256 5212c27ca054968c3296891c953a7f213fb174a8a6275b643f60c764d7125d35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 870fd2f1674ab16ed90c96c6597eab301fd5291b7086ace2e904d4e6615c2837
MD5 11550c568cbd6656900ab0f560768760
BLAKE2b-256 bda1ccfc4b2fc3a8febf4f70cd5486b10d207c1aa030205828d80d01b0fbf669

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f3aa6fed02bc74f921e2c8988d9a3990d18ea035f9355431382297605bcd84d8
MD5 0895b2d89323fc4c7c7502fff510f09d
BLAKE2b-256 54e4643fde91a82eab0c74b3ef5bd5f4f69dd1b97338441f7a72159241d47348

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 4c955c06475f09273e7fa652c7ced3210de034004efedec3d9e9197112502f3b
MD5 577698503be61d996b6b821aaa48e2e4
BLAKE2b-256 21d274c3408979e0130e63067441240ff4f7d182d01e0c06d55dd1e58baf59db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 921cad6e1aba5534167b72587e3c7698bc4808657e04a3045cdaa71bdefcad64
MD5 bab5c271a569239d876135fe5732b724
BLAKE2b-256 0476512b85092ac75c7b93b1745bfb047ca6ce0652f5530fac6555146ad836ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcafd19fb196d82c09d63d6e585d5d8577fa62e668b79206d04b9fa8f255a050
MD5 d3c97e2b3503fdd08ff8ee7b255fafe2
BLAKE2b-256 2fe3e152751070b6763228db419fdb2ff731fc86d56ebb2e01a03c3a794f912d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 9e83476b3a55a38f95526508da478731fe6eeda0514dd5ba6c102e7010ec5a27
MD5 e9eff79babdea1b071bfbbe754f5f5c1
BLAKE2b-256 657ec8cecfb43a4ee032ed67ef7a852caad231d25c6a1a4b721f350eea2b190d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 74ebfc8d3f37e35c40f096edfaeff526afb91624cd0ee657d26bbb9b24150204
MD5 6ab6c22f51b54f8f87fc21629d8b6219
BLAKE2b-256 27e2fb2ab1f363f680aa3ae7bcf98f314ca8e2c9e85e8dd7fc9f87396ac3ab0d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 8df72f7b975190f1dabe1f5a66ac01d593d22fb16e00625d315677f3da8e46e9
MD5 737917f95c1376af30b630bd6ca824a7
BLAKE2b-256 fd226417bccf35da247b57a3dd2aad702a38352324e435d5613765784d52b343

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b95550a5baa8b34e293e2046e9e677b322816ccf65ce03c5875787819a11763e
MD5 318ee20fd82f18be40a54d56d5157a5e
BLAKE2b-256 a1d94913911ffd3e8aa04dc146ab06b3eb5020c5c35fb8119638b2a51e151d0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b7707850935af7244cff3e974e1f473f4f65a6693c6569673157cd7656aa2d2
MD5 27371e3f3cd7ba9fe9a1a6c839c9c234
BLAKE2b-256 229d21beda652a85c3538e44db10235f775ed7dba0ba569d9caf3d33e4638bd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d2f060ad38a83ef2399b65bcc95af0fd407d1832945549e694f82f7eb91bd074
MD5 eedb5e38ac6d7098f44ea2e98e54d6e5
BLAKE2b-256 499e25525c7a7a77a87be2484043c2fdf2ffe0da6e706ea6c60aec31f2c3554b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.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.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 df3c804a1b4295b39d9244fea84fb9e76965b7e11f961be4a52f94ffa6c09b04
MD5 95aaeba07f5228d3f53c62fb8fb09376
BLAKE2b-256 64c54dabc91fcfb1a52d11142be7d4e5140c4056cd37c5005543c4972853111d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 0819c193cac4d0222a43e8228a64a8fc00ea34bfebd3db57aeeb2200e9a3a0d0
MD5 9e9260b562150d7d835f3defcf216a9e
BLAKE2b-256 78334abf5b46eb4a6745e1d8547605c941025cb80fc5fd644cdc9bd750b5fc7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 71b61e2599065f5fced317a93edb2b798ef6d3881896bfe12ebf6e9b6070275a
MD5 6c9391edb969e8804f89476b19812725
BLAKE2b-256 376ac02f380e643209a6f74081412e7a90a4b050cac13fd8e6d2963b4d02dfa5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0de67f89223585a2e38eabe958bbe480fced54cde540e4bf4e5cb8bc4d8ef8c5
MD5 6f219e877d82f8356767c73c7443b765
BLAKE2b-256 b449f488fd6a41559621655063b2f011372764bbb7bf4fa38f2e566f3233bb15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 37e442e1f1cf2f81e0c3d1cdc12c0757bd03dd71f4d3423a9788631b2084bf6b
MD5 636ead935ab741f9f6b8728b216e244f
BLAKE2b-256 f6c7458d08c1e21770eb5e193bde9a86fc2f902691cd2e9ab4ecc6eaaaf82fca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8d1e7189425e74226139597f6ec764fe9cbdfdaa88e6261db99f93e47f4995bc
MD5 1bb708de8bfafd3c5b4c26713b0ea600
BLAKE2b-256 ebe4e26381888295216a5f327727a49c821e7f25ec33689c57dbc6ee0ec256d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 ba5cf1244b0a832e20dad1b02ae3e5c22baa8fcc1ca066dde899ed3dc986279a
MD5 38520277b08bc8f923a416af0f5bbf08
BLAKE2b-256 097e40fa58645dd3848978f34cf3638d9bdb5444183a7e145e60151f855beca7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fa9d6d33b908054bda82843fea37861814099771eae208824eda688035c38d36
MD5 890f74667f3ed9bdb6c0ee6a12d73a7c
BLAKE2b-256 d84b296a5c8fb15184d1161e962ab7bbb29c5f67c7de4aca8ebe5462ca1dece4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0154c3fc73aa270b222c7bdc0a185860acb1b6a9cdf038130aef218945b044a6
MD5 d3ee5765df4e17b8f0eef22ec7aa801b
BLAKE2b-256 9082730575b16e8921695823182218c0d46451fecf2797adb3e1b94c0c3a0f1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 4b977dd81dfe628dc63ce56491051037c2eaf50b89a0757af65df3c92aca347c
MD5 941558e35fab7a5278b568f2a041147f
BLAKE2b-256 f463d1cc9ccd0385fbbd5299b3da713e7ac941b94f5e76395ad2e288229fdcf0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0068eeb43a65a1c52c30fcf162088902bdb52c5ab2508c3beda2b81981498b72
MD5 fabd2d4e3240ba2494613e797321a937
BLAKE2b-256 16a5f2c7c379d8761a2517dd083f7427a11220c039e6abd025757b8d12dea576

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 9f39c83689ca8367e28fcd7dc721f48c58d52dd7a50a93d9098dbf16a0228085
MD5 375615d64ec77de1dbd4a41e44d901e6
BLAKE2b-256 564eab730105bf68aa41f3098c7817ec6c6561c14dc252355a7def3e03cc8233

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 daa2a1b62e1d610655e4fda147adac07415c6f51f88e853e2e314204dbc7fb7a
MD5 eecb309a7b54f2f155a07a1b6c939d63
BLAKE2b-256 b29181ea6af2905885f5bff385f27a186620c23a9fe7b4dd3c69241fe5320fd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 076af019bb675f401d7afe65a1b566cc2dfe93c59f1ed5f5269ba98d2688ff9f
MD5 96a63bfa5524f07b486549b6a99bc40f
BLAKE2b-256 b077451664f14758ba139da3cec4eda397a6ce322f4d93a4fc21fcc97f5dfbcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 51bb5aed5db6dea2d618cd58a76bb5307908b149e5ce37bd74307a6db657db5e
MD5 842e77fa3e2751d514da2d305abab7bd
BLAKE2b-256 fa258b19a8a19613512cd1a8cadb91d0d8142c8810d76b19eaa025b6845f937c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f4fe8e76de8225e38f6387a3c86030f5ad5260f85c31df9d66a3906dfc509160
MD5 0c253a1fb47f3b2810d053c0edef50e5
BLAKE2b-256 7d94525a7775944201c20de16eab2430fc6b63cebabdbecf1b2b1ae052975a20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 25340817754e42156c0dea9eb4529cef943f6d0e4578e1ae98b47c33e3318161
MD5 6957072d55de78f79454b14b4ddab702
BLAKE2b-256 a3cebc25be990529657d46155e20c44d9f75304cc1cd7ac7626ff3545bef2bf7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0af50091b29c77348193127d32551be974f0e0653616ed729aa12a9e94fd0954
MD5 039f1a3c9e42ab0cccda302161289daa
BLAKE2b-256 95068e9f4a4302546ec85f843f56439717acf46fc83e9173a3d9cf02f0179917

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.3.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ecc902ee4cfe28f01e189a32eb7a7c7db4f60d563bc6596856d43d1acca8fd5b
MD5 7814c49a6be18871e1d2a8de8d22196f
BLAKE2b-256 73fb931b88a7ab423a00a38e19d6f64c9e2133caf4adc2eed4ebdef6245b453c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.3.0-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.3.0-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 7f4dc0734d7783226fc3224cd65eba838a86bce2bf22a21aa0613ede48fdbf0e
MD5 f811b5b88505b4ef7ff297a461fb85ec
BLAKE2b-256 40a9a708fa9929a919c42d1d8f9b14fef000f78c2bd58a471bbf6a7baebef86e

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