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

Uploaded CPython 3.14tWindows x86-64

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

Uploaded CPython 3.14tWindows x86

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

ctoon-0.2.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.2.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.2.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.2.0-cp313-cp313-win_amd64.whl (279.7 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13Windows x86

ctoon-0.2.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.2.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.2.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.2.0-cp312-cp312-win_amd64.whl (279.7 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

ctoon-0.2.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.2.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.2.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.2.0-cp311-cp311-win_amd64.whl (279.8 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

ctoon-0.2.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.2.0-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.0-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.0-cp310-cp310-win_amd64.whl (279.5 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

ctoon-0.2.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.2.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.2.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.2.0-cp39-cp39-win_amd64.whl (279.9 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9Windows x86

ctoon-0.2.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.2.0-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.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.2.0.tar.gz.

File metadata

  • Download URL: ctoon-0.2.0.tar.gz
  • Upload date:
  • Size: 625.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.2.0.tar.gz
Algorithm Hash digest
SHA256 93ab6b43d136727930fa2d0f65e873a9b324cd64e320f0dc6da39dea252a3b4d
MD5 b52b27d48b28062c21489d36a15120a4
BLAKE2b-256 9d653ba55edf5b854c724144e7b3cae438167b20dabd1fadc8973e5daef2a405

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 c12005e948a326298eb2ae4797dbe0a27f363d2e11f5b178b9ae9f21e3940323
MD5 4b3caa4366e797c90151b585b6e991f8
BLAKE2b-256 69d3ba612917bf6781dad7858b3376b1573c62e024b36c886a83f30541d85849

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 3d8f40e4c727219dd94f9ecc6eb9df0dd01ea3efc1bf626c869e878f3dc1c0a4
MD5 268448116b6471005e511c7df2eb991a
BLAKE2b-256 5c2764b3090948ed97381fdd6267d98d49bbd8adf4276429c8a38722092f5ccf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af7ff6bdb0d10ac8397c19e8f2623b18912d06bf30463d300a8ffc01fed3ea86
MD5 dd802adab4a490154cd8ecdc032157e5
BLAKE2b-256 e7cf9e544ca45d6e9cfd165b712308a7ae91590718ce2fe2aa13616a7952d22d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 380f31b45845fcabeb2bbb539f7b80c830c2e11e841a2e96b99f0cf050bf48d3
MD5 1eb1e8382a8b629e8ebbfc4689ae2a69
BLAKE2b-256 e1cce8974703c9e08f128476d7e5abb4a6899037c1c6817da54d73bcbc254e65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 4cbdb4a40d3f411aa6d30be9a80259d28d8b349cf4d9b80f654360976aced3f1
MD5 7bcde7c805620168846d79580a4379d6
BLAKE2b-256 5dd331f38893c9e00d0cd1837f5740090e04225d6fabd36cb70e6aa8f1ef30c2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 441786609d5b03617005c4f579fcb1c80d6a56030b7032edc088d98faf3ece6e
MD5 7ecc49637511080e67e53d703f4d9391
BLAKE2b-256 caad880f091ad26b7b6a5acd4951a9ef08788c77bc01b28d4ca0c0580b0a1678

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 fd69be9eb5c092ace82da5c1dfdaae16917932df42171c3d38f7a8f636b7cb71
MD5 21c27cc97fcecc2207a3217419058e0a
BLAKE2b-256 0287b7fde0826b158facb7d33c51009f7cb62f1f42a728b78a8d6a1e53a47488

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d366eebb8fe7fc569d5cc6d599cb2f8c1bee7349e7be96c9f93620448df58d6a
MD5 4e0add2efdbb09c83eaf9815f8f279a4
BLAKE2b-256 0bdc31b82af155563fa8a8a918932fd8c2518ab3d8141bb2e9082835f8742cae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e7194fd5116ba252b9b79404ab3ada0d7862a9d43e3864ff55f0742e76ae1e00
MD5 b0b627d46cd5beafababa026ded98fd6
BLAKE2b-256 9986491d3055bd5afd9c43ab8b1c08d429ae77841cc18ec3ee7cb5c199e355ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 48cbcbacce00e18af06a983ea663ff6daa47bd06c0c372deb58dc3a51d36fc94
MD5 88e848d6082f10a905ff085e33b3e2e5
BLAKE2b-256 32058be202d436e71a71d62d2c047f4daa6c358c21841f251a0eb540d8b014fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b8d77bf8e29e94e42326f0b88ae94e9809f0f90f604090ee999330d8f8c96db1
MD5 624728adccc77203c63628b31b68e9cd
BLAKE2b-256 66bcb198c41ecd594aa506515d9be00c9a0c300d5570efbd76059dd4d49cb3a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 9de02d31b5c6e803315f22e7a4aee5b5db6b939a8cc1a7abeb293568c4960ff1
MD5 b373e4a8c7837aa899ddddb502998369
BLAKE2b-256 02f808496ca5f066e946b2a6c22dea97b94434593ba1651dd0393dae1d9024b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7f47d0798113f6df1730dc82d53e5da9789bf3226de1096b87213a793c4ac787
MD5 8bcb2daf89f97921ab69ff2fcd20fbbf
BLAKE2b-256 55960d37c97a99951763114bd63fcf953c2249db1d2c92d3e7ceed7baa7922b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b96223b28dbaa41f5ac79dce3e46676714093e81766261e3dc3b9de36c4ca9d2
MD5 824d508eac8340f3b3fd98cf4f9ddb4d
BLAKE2b-256 f204d2b9ada826b4c78728bf14fb6f3838a457c55b2ef366346356154fd0d722

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 f41abc0d007e609c5a1c589452d5d2f0e4d37bb12149108376377e4c8b077062
MD5 98784db0069b1dae6d04f8408ff0ffe0
BLAKE2b-256 e763ca5f5b4124237ea37be74be6ba5a4f32fd34406f2330fe8ac55397865973

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ff26803591ea43cac0c0202f183599829ad4e8a8ba0b9519d147507b6705ffad
MD5 c698d9cac35154109dde70f29e47b5f3
BLAKE2b-256 234f8c44f97b0eb3008af2a9bab7fb6cee23cb361534248cfa86c130e89e8f73

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 3a06837cc082db2c3354f9cf3c23f65a0394218c7d7bd68150f2619c97efd712
MD5 4c937fbc024d74a0568487d11b41a208
BLAKE2b-256 16208a58f4cbc77a2f36354ac79a9761c8e7f25664c450951b6e76f0abe40d84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8405bdb02b9ed255077679f421a162d824e1e6f1be7414de568e2006374bd1e0
MD5 3a3c2ee2455f34a58b918f332c44d2ba
BLAKE2b-256 5cb52d31c340b3f0692689d2e4ceede811cb79270e4e978e8b2d4109f85ebb33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c5f90b6c38f8f39792593e4c434e527cf20089df68f0016aa8ffe3418f6a027
MD5 4c099747373d51d99458b82347fb9cb3
BLAKE2b-256 675031508bdc1615b8e0a431cb09a08b4b5aa6ff0f8db2fb0ee27bf450630177

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 a6d0390d9dc25aa0c51cc76a84e675f00e4f0a7e5037d661431134351b040f22
MD5 cdb2f59c8633bb1ee2dee03bcd432526
BLAKE2b-256 7fbf904481942258a45cdc50f2718cfd65dc4040d4327fade41a760630e0ddb6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5d04ac8b857bca30230aef8c5a26eb65904932d26052fcecc3a9b9c54f5c5f59
MD5 a3d26f160c28d5d1e1b47f07178e42a2
BLAKE2b-256 f3529bf9bc14f7b65e118c6466550349650da23a47e7bea70a240707dca15f0f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 62b53a03813d9e9ab44c9a4152a5ab3035e66ecd3bb4081105b0ab50fba9a6bc
MD5 cfd1318be6bc9584bf924b74556dec94
BLAKE2b-256 b56c1bb07e51b7cd080224af39c446bddc7d3dd616200702d994b814684a89d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a12ab8db19a06ae79aad4504ec765fb70b26e5a82b4d8a14b354bb1db6e30346
MD5 d8b897bd3513ddfcf3076f004ee669dd
BLAKE2b-256 e1e8564b2f462348b56640d1206b40817b3b4c0039bf96b21948361a2c6243b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f58f2365f9a6699a3fd087181c859c6ae607ea31be9e73834159d9b46bd4278e
MD5 f399569d67e143facdc45c5e3f8e099d
BLAKE2b-256 772b2ddcfeb19b6d2c03dbe16ced45bb6e74f6be0f66c06727c7796296345a91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 207fe92b32b5a7ec496c840d16b348ccc0560a3db4788c5162c5ad6227b3dd68
MD5 815d0294f18875629a8b84ddfdc76745
BLAKE2b-256 f6b840935bc8279aa2160139aa3744b71677b01d7f10a59735a6926974c4f2a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2110c5b0b03fded8d898c6127cddf9e62cb43b111ace9339e08aceb3349afb9d
MD5 50cdddc386c230f6361693b9e95f3eb1
BLAKE2b-256 e32ba84f4aa010232257de57ad9d6ce7acaaf0dff9041d5c17047d77560bdcc9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 7838392b00011125d7cad5f4940eaa0e0e249d138fccf5ca15becf659b0faf6c
MD5 01be496907ce1908bf3fe1af31df4ebf
BLAKE2b-256 639b85de3ad3dabecb3ba239af92167d738ce512d03df37d72db5147d72cbf78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b45f14418416d8905b1b3eaaae77faa4d417191a09655691780229a82963c778
MD5 1a20cd57922d9f855f3c0f55ce0b5d79
BLAKE2b-256 d04e8020aa89865c4a2124048e5a2a6aa17471d5424c2888a035d6c388d6afb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b1048b82eed4905f95642156a5a1c105f77d895f6ab2b0633d891afd9648257
MD5 3c7954e3cd12f0dd28e9084be9b59df8
BLAKE2b-256 fe473f801d90e03fbfc47b79e35c2527f30556302460dafe82529f59c32c59d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 c39bf506e673194f49301e768a839e355554bb972df3f4d925ae2eb3c961c8c6
MD5 d4271fa627e8dfd1984bda6fe7fc6767
BLAKE2b-256 2c2b5d1f72001ee7ae0f05b8dc213d306a2633abcff9c4800c95706e0fde74cb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3d4c6376257e0e846ea6aac8137ca4cf5cbe4126049df8ec5731fbc6d2bb7c7f
MD5 a0ea8b4996d994702d7773fcb663e7bf
BLAKE2b-256 67f22fe0a2165dbe2189784a9f167e95c783de450271774a3d073c3fa6d4bc81

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ctoon-0.2.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.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 8473558ed23af0c197979103b1f25875bfcc642ab56a95ab0b22e5efc11beac2
MD5 ab0ffb374b4805052f74a8f2d03a65e4
BLAKE2b-256 4b8d2cf98a95eeecfa664d4653fd5c55bd9f7c5d77875bcc24f8d1fcadb4331f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43b3ae6af1e9bcf9f287b3129fe8f8e7b7b05a4580b7cffd2082fbbe35a2be10
MD5 7db131bafa92cec48f06fa5fb5593e3b
BLAKE2b-256 1f013dd899831071e879d0948165c49476d6f42a0b2516f3bb12dab1c49b77fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8dc4cd8ec285055a1f7082b6330d1b2764af8fe0a0cc399eb4ccedf25ef6e582
MD5 ae7ab598b04878973ef4dd1ca4852608
BLAKE2b-256 c2e0f25a410494294f13ed27252931d4b19a4491d185487685e6c1b8f997412b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ctoon-0.2.0-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 0dcdc0428acd280f2a4c30bfcfb6a683ae7abf82998a4859a56d82cccc9b0373
MD5 799af8ad8fd9ed0c6e7f92ba6216fbb7
BLAKE2b-256 f5d8b0d408415356cad77c207db9cea3896b52074d3d086918d0d0fff682acc5

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