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

Uploaded CPython 3.14tWindows x86-64

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

Uploaded CPython 3.14tWindows x86

ctoon-0.2.1-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.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (395.3 kB view details)

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

ctoon-0.2.1-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.1-cp314-cp314-win_amd64.whl (286.1 kB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

ctoon-0.2.1-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.1-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.1-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.1-cp313-cp313-win_amd64.whl (279.7 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13Windows x86

ctoon-0.2.1-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.1-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.1-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.1-cp312-cp312-win_amd64.whl (279.7 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

ctoon-0.2.1-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.1-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.1-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.1-cp311-cp311-win_amd64.whl (279.8 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

ctoon-0.2.1-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.1-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.1-cp311-cp311-macosx_10_13_universal2.whl (564.4 kB view details)

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

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

ctoon-0.2.1-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.1-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.1-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.1-cp39-cp39-win_amd64.whl (279.9 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9Windows x86

ctoon-0.2.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: ctoon-0.2.1.tar.gz
  • Upload date:
  • Size: 636.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.1.tar.gz
Algorithm Hash digest
SHA256 41f6a76401dff0270e19771d91504c3663cbe4899dfb9c81e400ffb7ed0179ea
MD5 283448f5a2cbe54947d04fa64187d06a
BLAKE2b-256 67b0c0d3a714cf64c37637a925d49badd875b6fd0c4dc9290820f71d2963f4e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 73c5a8530275199922a769fb9d880d1bfc99644353c97b3fe0a36d8f9567a112
MD5 6747926ada14fd42d61b72809a546e59
BLAKE2b-256 d59dccf4d17cc225742f912100f964ed52c47326b3cc201a19f68c997a0e9a27

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.2.1-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 2a45d49f9a7dbb2bf35b8d040c82908872e56b37b6a90b9ac5a5bdfcf136615a
MD5 bf6e75cd4ae07b8c7f6300856cf51293
BLAKE2b-256 c89fac4430959c0696285d257685bc513f80b919dcfcfc31ba352d0f5e258eb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6fca56777d86bd30639547d43699fa5ed313901bdb4df24f43bd05c85383c3f1
MD5 66e3b5e4abb1c7bbb34a7c38c8bac286
BLAKE2b-256 b3cd95e79199bf64a703481d1192a52f4769edfddff674ddeb0624b796bf83dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db356ee3a524e1261baeb60ed129567409161d60e3ec6c123b25819d631c3713
MD5 0eced01e01ff8411c10d34d677acb7ef
BLAKE2b-256 fe0f1e378d2d43d6f01355a826201ac7421ffae44fc71caaf9b224f5785684b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 fcd21748d6ca33cffa8cd22dabb691b3b95963b64ebe6c5a94e61a5baacaa56f
MD5 48cb5cd37df14dc5b5a9e73ecd66be1c
BLAKE2b-256 df27a0da6c03a1d863adc03fe8d37348465446aacae64bb6fbf4f17358b58723

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0f6b2a2657095807a4c897add7972cddc730491eb0bbd419347046ae341055ee
MD5 82c1f184cd23a263327e8ce55b1afd03
BLAKE2b-256 f7a9882baf0d34a3150d9063c66945962aea3ac67f3b26dba4146e0293b8b739

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 55aded87b2cb22486c33a3b43a450fccad3f78e583cfe097c7f710612dbdc751
MD5 d4c77892fe8c5d4d4861934fe7ddef02
BLAKE2b-256 a2bbd0f32c65c097e43a981591ac3e93ed8345c791961ed100830096772504c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 543f85274fc58225bff1797f279aec9eeae59393b5b0146652f3efbd6cc7712f
MD5 09e4ab1b893e8d4287675c22da987361
BLAKE2b-256 10c09d0509c1e1174eb471674fedeab3f31419c66c0845e875ca929bbb496ffd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5a3f0bc96b80a5c94e28929d83840ac7f9b41caae55f231348b9f3ee21ffe69
MD5 7150f5f641c741aac762b183ea2a0bd4
BLAKE2b-256 fbdfd228c783d6ee4dea1adc077852309e60f802ff045d101ed21a6f7195045b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 bc667280979e663831b00772ee675aa95ecf9337d6f4f4e22195ea29600637c4
MD5 79298b00d9ed57c6db63c6bba9784ccf
BLAKE2b-256 044506a977369790e1bb9f25dc8c33bd5fd637a455dda26a458156481a09358b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e96d4d88935c0e7a502f5b433ab7865af251c61c52a04a2a94e64a88e35e007f
MD5 06068d65ecedcc12a119dced05f3bef4
BLAKE2b-256 957def52c772122207d7bef09cc32e14ef0faf1d9ecda02f0e0b5b6252a3457e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 4ed71468842b01fc4821539734e8498ba735c6005a7984d287e938d1f7fd345f
MD5 4332310d13515143c90f4fdc236f3a7b
BLAKE2b-256 0c6c0b84ecce9a96a00f11905101c8ba33b60eac6d2c0cf90d7ac9dc1ed60317

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 29459ddd2a43ecad20f73ee0cca9c4bfc8f3cb717f106f21d5da0fdf3dd8ff70
MD5 e1b34682c9f166267cafd25935c02542
BLAKE2b-256 bc79e983d294e81198738c30307948bb29b762baf06e1023da53f414f79218da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 52c77c5ee01b67b2739661dc8a2fca1ee3d51662c635759b478fbf2ed0a6015e
MD5 5966208e0c2739e0192931d4fc1ef48e
BLAKE2b-256 fd1b2e8f1dcd384d5503bd4811b0693b02e40df0f41c56e71d01990ab1e28fef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 a584d45ef4ada38b86f8f7b59c163a23944098dea7dccf9b4ab2b288c6f275c0
MD5 5e50e9334b7e26110bd10cf90ca88139
BLAKE2b-256 5327f44372e94c57858a459b88b5d2043a1dfb3cf1771259cf488f1a955b07fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 279.7 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8f996680b4d48df9e9fdbb02c5f29fed4ed1bb3c77f396c48d796379a67f75ed
MD5 295f936b48ac26b7e914beb6dcc16c99
BLAKE2b-256 62153c86dcf761f8b4b2df3f3687269da81f7b84192c20522e5f5c4dc84bd03c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 9a84e1c16455db78f7b42ab38e859e37d37e952b941161f5e4af92e33d04278b
MD5 2a8f4966fa1ffef53014230a06ff51ba
BLAKE2b-256 626a0930f47166180928c04e9d33b8e548ab9dbbef11108778dd0e3f51301e18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ee47817d21fee1048c52504878f34ee5223005c15a5430e511d896439dc78b74
MD5 48abee813711faf0221ee0e1353159f0
BLAKE2b-256 f73de048f2f47a57340c72c9db6ad80edb4b82b48c6a90923c2ac44e7fd35183

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 509c0a580999d1d399572d14262a085dee40e189448e47f744082e23163630e5
MD5 648ce37642ad3ffb290ca3e69976c36f
BLAKE2b-256 c69a83381de5bb6c35b1db211a8874ec38d5735649d4c907a00c88d14f065d8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 67cf3106e7db7a1a8c252da432a0a43aa74f98414dae8e48be03448cd23059d7
MD5 a7ce774cb4155af104809b08b579dc9c
BLAKE2b-256 9d0b3955966d5a8548c02ae0ab2a7886d14ec0fc69d21dcdb441e9400b4b1eff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9a87d1cae98ccd77cad84d4b1661fafd1811fa27973da57f22465d87c437a547
MD5 64a2edffd600df399b8dba275fa19fa5
BLAKE2b-256 e4868256a9c7405ce4655ee5f403af09f3ef23d660d0e59d0be635fe4470d476

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 445a7f35a85a8aa1c55b93abf4371d3fb10414df4fd059cefc6dda43a1464848
MD5 0d84b6cc265fc121662a71ced4f86e45
BLAKE2b-256 29c3f7d3c84007ace2dea2f3deef2bd90bdbfd764a3e61d24f0f6b76c7c2d6ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a2020c118f272f354e9ede3310a57547d1e01838a034ff16788901f088b8bda
MD5 e297834e1787473c0f64082b1a56aae7
BLAKE2b-256 f8639646102e60bd865a89baf3ada3ea98272083acbed9497a393ec2cfa5f0a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a18db557f140611f257fc4723708b5441640e36d64a1384fd9697f00b1e4d3e7
MD5 da46c64a461e42fdd763c513721b3947
BLAKE2b-256 23b2196b3f204e5b972b82175ade1a5130cf6e1daca6297964017496625f20c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d02abc6b8aa511e223a4789f63e77fa86366fef0380809646917e8e835a8cd84
MD5 83a3c6f16a19e19ab85ea6e6fc50f32b
BLAKE2b-256 0433c384e831ce509941cf393df84f31f31e74d636ce1b1904d54dc4d1c2f8a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d7841e558ff8529e1b396877e47df0a5eb417dc36dcb5c4867323f4175adefc9
MD5 10eaef59fa1c8b239d008b8273cf88c0
BLAKE2b-256 e2a9d1fd773024cb834c19bd43d8e415bec1903b926ffebcee375cd46b53cfa5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 7373a2f784d792e7a138b8ccb49b9c33e4976a32035161f7c8a65fb6abe4b1bd
MD5 0619d032c218e0b694317bff711bc09b
BLAKE2b-256 7a7d587716d2ac6113da4fd194353763a1cc6440208aeb98976f6f574d15738b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d6e5e7821ff490228e5eb912ca288f99a6bc7f607590b6a12521535bd117ac9
MD5 5f188c69f2b296ae8d122c58d92eac76
BLAKE2b-256 3b238befae20f23d9c475e75ea902539327b6be456dfa8ae387753f5ea2b5baf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1149c864dba0bd325e2977abe1cd80dae716c2405010d053ceab25d95a61712
MD5 aa04d0ea9924093cfd658dde67f88536
BLAKE2b-256 a7c301bf0abfff4d999dcdf866501b9bb05a7dd8fc6f22f2a8a123086f52ea9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d3e20517b3a203dc6b9a16ca3c3d60616e3715ba5691809a45742da507dc591b
MD5 2fa3b0a5ad34fc0f4d197e5d02afbb12
BLAKE2b-256 a742b4826f121df7c3e7b2d8ba51e5366d6744a50bb1b6e331def717a0eb3c6d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 43e9d799c1d48bbe0056f507236a1d2d49f1557fcda84ab6700d6a92b3295d0d
MD5 4911fab61a30ad0b34327f91adda2a9b
BLAKE2b-256 4f1e74365864d0af4d2af376d7e60ff556220bb34aac31ca265cc7bd2f898c4c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.1-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.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 bfe9102f45466bff48adbf9e343fce5da5b25321ed599522e5dc58301319ef0f
MD5 ff8139a39718e41524d4f556a31eca29
BLAKE2b-256 02172d78a35a1925381304a7f1a9287cf214f593b95f5db1f3a814a0b89ffb28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6b5c09e5fb07df2d9ccb441257cce6a3c7f4bca144f9f6f3e378f117be4d028f
MD5 87ddac8a78047c940328f34a065bb856
BLAKE2b-256 b75a094a5173401e39da5efb56596841b5e8c9701e647bc67b618c880a52246e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87b7b8b1d28e10d85e9ae34e58f7aca5022a2714d42d022ce7e8a4cf2b6c6faa
MD5 3da62dd16da67d92d9a2f79631572002
BLAKE2b-256 2c0d3ca90d96935057c2cc6976ec73ecd79b15b2f8b26fb96a7ababbb5d4d3d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.1-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 f4fae896a931cc4dbbc29cedb0e4e71c62076824f0ade76d75a9ba70d9e4708f
MD5 1475b08bc883f3a0962078b14491cba5
BLAKE2b-256 6ea64c6d5f9354e2c1b1400ce7ead03d0c1d394acbb841d385c09d7a9b2be10d

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