Fast TOON (Token-Oriented Object Notation) encoder. Byte-identical to the TOON spec, 8x faster than toons and 2.7x faster than the official TS SDK.
Project description
etoon
Fast TOON (Token-Oriented Object Notation) encoder for Python, Rust, and CLI.
8× faster than toons, 2.7× faster than the official TS SDK, byte-identical output.
Performance
Measured on a 50-doc payload (7480 bytes JSON → 4012 bytes TOON):
| Encoder | Time | vs etoon |
|---|---|---|
| etoon (Rust, native) | 12.1 μs | 1.00× |
| etoon (Python, PyO3) | 15.4 μs | 1.27× |
| @toon-format/toon (TS SDK) | 35.6 μs | 2.94× |
| py-rtoon | 85.9 μs | 7.10× |
| toons | 106.4 μs | 8.79× |
CLI via stdin pipe (Claude / Bash workflows):
| CLI | Per call | Relative |
|---|---|---|
| etoon | 0.43 ms | 1.00× |
| official toon | 50.7 ms | 118× slower |
Auto-detect mode (v0.2.0+) — handles JSON, mixed log, and plain text:
| Input | Size | Per call |
|---|---|---|
| Pure JSON (1000 objects) | 120KB | 0.73 ms |
| Mixed log (5K JSON + 5K text) | 600KB | 1.93 ms |
| Plain text pass-through | 300KB | 0.56 ms |
Reproduce
# Encoder core benchmark (Rust native, no I/O)
cargo run --release --bin bench payload.json
# CLI stdin pipe benchmark
python3 -c "
import json
data = [{'id': i, 'name': f'item_{i}', 'price': i*1.5, 'tags': ['a','b','c']} for i in range(1000)]
print(json.dumps(data))
" > /tmp/bench.json
# Time 200 runs
start=$(date +%s%N)
for i in $(seq 1 200); do etoon < /tmp/bench.json > /dev/null; done
end=$(date +%s%N)
echo "$(echo "scale=2; ($end - $start) / 200000000" | bc)ms avg"
Install
CLI binary (recommended for LLM workflows)
Pre-built — no Rust required:
Download from GitHub Releases (Linux/macOS/Windows, x86_64/aarch64):
Linux
# x86_64
curl -L https://github.com/coseto6125/etoon/releases/latest/download/etoon-linux-x86_64 -o etoon
# Apple Silicon / ARM server (aarch64)
curl -L https://github.com/coseto6125/etoon/releases/latest/download/etoon-linux-aarch64 -o etoon
chmod +x etoon
sudo mv etoon /usr/local/bin/ # or ~/.local/bin/
macOS
# Apple Silicon (M1/M2/M3/M4)
curl -L https://github.com/coseto6125/etoon/releases/latest/download/etoon-macos-aarch64 -o etoon
# Intel Mac
curl -L https://github.com/coseto6125/etoon/releases/latest/download/etoon-macos-x86_64 -o etoon
chmod +x etoon
sudo mv etoon /usr/local/bin/
Windows
# PowerShell
Invoke-WebRequest -Uri "https://github.com/coseto6125/etoon/releases/latest/download/etoon-windows-x86_64.exe" -OutFile "etoon.exe"
# Move to a directory in your PATH, e.g.:
Move-Item etoon.exe "$env:USERPROFILE\.local\bin\etoon.exe"
Verify download (optional)
Each release includes SHA256 checksums, SLSA provenance attestation, and VirusTotal scan reports.
# 1. Verify checksum
curl -L https://github.com/coseto6125/etoon/releases/latest/download/SHA256SUMS.txt -o SHA256SUMS.txt
sha256sum -c SHA256SUMS.txt --ignore-missing
# 2. Verify SLSA provenance (requires gh CLI)
gh attestation verify etoon-linux-x86_64 --repo coseto6125/etoon
# 3. VirusTotal — scan report links are in the release notes
macOS unsigned binary note: xattr -d com.apple.quarantine etoon to bypass Gatekeeper.
From source (requires Rust toolchain):
cargo install etoon
Python library
pip install etoon
This installs the Python binding (
etoon.dumps()), not the CLI binary. For the CLI, use one of the methods above.
Rust library
cargo add etoon --no-default-features
Usage
Python
import etoon
docs = [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]
print(etoon.dumps(docs))
# [2]{id,name}:
# 1,Alice
# 2,Bob
CLI (Bash pipe)
curl -s https://api.example.com/data | etoon
cat data.json | etoon -o output.toon
aws logs tail /ecs/my-service | etoon # mixed log: JSON blocks → TOON, text → pass-through
etoon --strict < data.json # error on non-JSON (old behavior)
LLM Agents — Setup Guide
Append | etoon to shell commands so the AI reads TOON instead of raw JSON — 40-60% fewer tokens, lossless, auto-detects input format.
gh pr list --json number,title,author | etoon
aws logs tail /ecs/my-service | etoon
kubectl get pods -o json | etoon
Rules:
| etoongoes at the end of the pipeline —jq/grep/awkbefore it, never after- Auto-detects JSON / mixed log / plain text — safe to append to any command
- Skip only for: byte-exact diff, single-value lookups (1-2 lines)
Claude Code
Add to CLAUDE.md (or .claude/CLAUDE.md) in your project root:
## Bash Output
Append `| etoon` as the final pipe segment of any Bash command whose output
reaches the conversation. etoon auto-detects JSON, mixed log, and plain text.
Skip only for byte-exact diff or single-value lookups (1-2 lines).
Cursor
Add to .cursor/rules/etoon.mdc:
---
description: Compress shell output with etoon
globs:
alwaysApply: true
---
When running shell/terminal commands, append `| etoon` as the last pipe segment.
etoon auto-detects JSON, mixed log, and plain text — safe for any command.
Skip only for byte-exact diff or single-value lookups (1-2 lines).
OpenAI Codex CLI
Add to AGENTS.md in your project root:
## Bash Output
Append `| etoon` as the final pipe segment of any shell command.
etoon auto-detects JSON, mixed log, and plain text (non-JSON passes through unchanged).
Skip only for byte-exact diff or single-value lookups (1-2 lines).
Windsurf / Other AI Editors
Add to .windsurfrules (Windsurf) or the equivalent rules file:
When executing shell commands, always append `| etoon` at the end of the pipeline.
etoon auto-detects input format: JSON → compact TOON, mixed log → JSON blocks encoded + text pass-through, plain text → unchanged.
Skip only for byte-exact diff or single-value lookups (1-2 lines).
Gemini CLI
Add to GEMINI.md in your project root:
## Bash Output
Append `| etoon` as the final pipe segment of any shell command.
etoon auto-detects JSON, mixed log, and plain text (non-JSON passes through unchanged).
Skip only for byte-exact diff or single-value lookups (1-2 lines).
ChatGPT / Custom GPTs
Add to system prompt or custom instructions:
When generating shell commands for the user, append `| etoon` as the last pipe segment.
etoon converts JSON to TOON (40-60% fewer tokens). Non-JSON passes through unchanged.
Rust
let json_bytes = serde_json::to_vec(&my_data)?;
let toon = etoon::toon::encode(&json_bytes)?;
Architecture
Python dict → orjson.dumps → JSON bytes → sonic-rs (SIMD parse) → walk → TOON string
Key optimizations:
- sonic-rs SIMD JSON parser (~7× faster than serde_json)
- orjson bridge — single boundary crossing (vs PyO3-based alternatives)
- uniform-order table fast path — skips 300 key lookups per 50-row table
- itoa specialized integer formatting
Compatibility
Output is byte-identical to the toons Python package (Apache 2.0) and the
official toon-format/toon TypeScript SDK. Passes 111/111 TOON spec
fixtures covering primitives, objects, arrays (primitive/tabular/nested/bulleted),
and whitespace.
Advanced options
These are TOON spec optional parameters, intended for programmatic use in your codebase (Python / Rust library calls). The CLI
| etoonpipe for LLM workflows uses defaults and does not need these.
# Custom delimiter (when values contain commas)
etoon.dumps(data, delimiter="|") # or "\t"
# Key folding: collapse {a:{b:{c:1}}} → "a.b.c: 1"
etoon.dumps(data, fold_keys=True)
etoon.dumps(data, fold_keys=True, flatten_depth=2) # partial fold
Limitations
- Integers > 2⁶³ are lossily coerced via f64 (works for most common big integers that happen to be representable; arbitrary-precision is not supported).
- Custom
indentis hardcoded to 2 spaces (TOON spec default).
License
Apache 2.0. Test fixtures in tests/fixtures/ are sourced from the
toons project (Apache 2.0).
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file etoon-0.2.1.tar.gz.
File metadata
- Download URL: etoon-0.2.1.tar.gz
- Upload date:
- Size: 36.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e09affb672c7da48b60d412466d0db51591d25eb79e42c8e0ab08c32471e79f1
|
|
| MD5 |
2fcca41a72e7878b2858eb641b6313db
|
|
| BLAKE2b-256 |
ef0d5c3af5b8cb679cb77db7d9c250acff029d23733cedf2bee4b7997490e0ef
|
File details
Details for the file etoon-0.2.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: etoon-0.2.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 273.7 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28b93fb69116a4211cc8179e8e44632a9da2ce14317d85eb45dbd2d4ebdf608d
|
|
| MD5 |
e370c02715407c0e9c84881125b3294f
|
|
| BLAKE2b-256 |
1d628e4b855d8fc41ba8ab50d83f9c14693432970c38a71912f3840b6807d2b8
|
File details
Details for the file etoon-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 371.2 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
951ecc223f98abe9609452ebf161766f54575eba20149a1dc5d1a36ba8a65ce7
|
|
| MD5 |
01123ac3bec0664bb63edbd7a4b5ddf5
|
|
| BLAKE2b-256 |
02869742957681896474220ef588f0bb4a5cdc9424a52a5b6806ea5749585fba
|
File details
Details for the file etoon-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etoon-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 342.6 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c82bb1461281c31d4061f220fb31595b72dcbb8b8f0943628ac5cd2cc52e3ea
|
|
| MD5 |
2410f0c3c31e9703029e5f6dac6ae583
|
|
| BLAKE2b-256 |
9fb35fb267e140ac50226adae877d76d70b4d1bf0bf900149cb6fd4824080ae2
|
File details
Details for the file etoon-0.2.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: etoon-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 320.5 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02a0f9a79aa802ffad6e57a37e06393ca42756e70d9f01dfaf1394298c2cadf0
|
|
| MD5 |
84dbd99b43bf6870c49b2a94c3c0b0c1
|
|
| BLAKE2b-256 |
79d5dbfbc8794dca5953ad0a52652f0e8f46f6fd9d83fbb88a4cd855c1001cad
|
File details
Details for the file etoon-0.2.1-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 341.4 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1028549a5b69c286487cbd1e59de1878f3c99a06f83965cb6f2f31fc584d5e04
|
|
| MD5 |
bc2d43ad27b264985a98380a14bfe7cf
|
|
| BLAKE2b-256 |
0d90422747caafd5cd1e79ae39fd238f7b0c1e0536c9b8c5c58048d4c6630b3d
|
File details
Details for the file etoon-0.2.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: etoon-0.2.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 273.7 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cec26bb16f356d20cb2f3087102936e997abee4d323844d3fa8047d7b2d29b8
|
|
| MD5 |
38f3edc320e89e8a777dfa0b9e30e088
|
|
| BLAKE2b-256 |
7ea58ab4525bb918f110f60ed1848adf51d4663e3fc73dcfafbbb7576e74b026
|
File details
Details for the file etoon-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 371.5 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b19a90e299ead725aa224be7fe0bb97dfcdda6b2ec5a5e1e3d548638abd431d9
|
|
| MD5 |
5f03b177df589fe67d4a23446b6e11a3
|
|
| BLAKE2b-256 |
d953304ac95d5c2021544fa787c3276b54bdc693fdf00e34b6b17cd43f5cde64
|
File details
Details for the file etoon-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etoon-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 342.9 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6de7777571897405cdb9a5a7cc982aefb0e6a24e36de0e3f57bcc79922d67bf
|
|
| MD5 |
010fe4962a28c8b4219579dd57f29330
|
|
| BLAKE2b-256 |
0cf6e143b45a2bca58403e59a54debcf2b2cb1bda7aa5341210f1d9dae73cfee
|
File details
Details for the file etoon-0.2.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: etoon-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 320.6 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee514422e7f299d223ddeac202b82589dda032499b7280b46988d702b74cb0a7
|
|
| MD5 |
7ee8cb94b67e6e2b63156316d89ac0db
|
|
| BLAKE2b-256 |
1402e36052a4738815c709767cc483027983087f12faf6a917fb67caebf83683
|
File details
Details for the file etoon-0.2.1-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 341.5 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68b7c24cb692a5d0e0b84843165314bb8f106ef38bd9883299f4d919fab0e616
|
|
| MD5 |
22fcef9a93f0ad37113961b5ebb04348
|
|
| BLAKE2b-256 |
4f410e760336fe30c7dc802c4410a932c42eb05e8a40873e955299e5de5b4bf7
|
File details
Details for the file etoon-0.2.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: etoon-0.2.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 275.4 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
866db3996ffa4e24f49fe7a1ecb40ec16f01fd6990b1060ec712dfb0d2c624e1
|
|
| MD5 |
ca8f33b558f99cce64d80a1a051bc77a
|
|
| BLAKE2b-256 |
d0866315d576617e5d201590e1320afb4c0edf755e2777b14e67f0bbddc39434
|
File details
Details for the file etoon-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 371.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
142fa8fa218f92d119bebaa0a614e9ca957e92c1f9e06988195b80e52e22ad7b
|
|
| MD5 |
2de080b40389cf01e9c3a3272561c8e8
|
|
| BLAKE2b-256 |
60bafd35ecf31f55044798688bc02aaaf680fe4a0c8346100a1e7b7828c65062
|
File details
Details for the file etoon-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etoon-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 343.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a1c15f2d1b0617c4f475c660b12ededd6f950191f78188bbf246a09a7ddc0c7
|
|
| MD5 |
d2419b05f659944c60adebfd60e921a4
|
|
| BLAKE2b-256 |
c4b09a6d7dd69d765a2ba2855c2c20f5eb5d862deeeae63d4e0588329b572e7b
|
File details
Details for the file etoon-0.2.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: etoon-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 321.1 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8ffdeaccdfbe522ba84913c20d941658a9d02f19057f1069e2c94efccffaf57
|
|
| MD5 |
aa4e8981aa56eae6595b43edec67b454
|
|
| BLAKE2b-256 |
c006a7e25395725950eba193ee9d4ac762420c3a73b97ca1a4f0b3c73d1c1c4e
|
File details
Details for the file etoon-0.2.1-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 342.1 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ae783d0e344728347fc5e48aa3b04fcac5fd8d5cf8b94e92a253f92d1786326
|
|
| MD5 |
9ee6245cf25bbeb1eb0645c8c988cd91
|
|
| BLAKE2b-256 |
d4a86cbc1b4a9ba9705008131218a87873dfcd30eba1920505b6eec8abe07ab0
|
File details
Details for the file etoon-0.2.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: etoon-0.2.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 275.3 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed7d2fda264c336abcbe84edaf9170d0f35be1599051a621e8c65628cfd9571d
|
|
| MD5 |
c5c4388e66da66ada3b1b90841745b8d
|
|
| BLAKE2b-256 |
7c48de7659c6b036f6e7684678fcdac56145af14ddaf0a2091e1d4138c3d90eb
|
File details
Details for the file etoon-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 371.7 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a22b6a49cb8825343d511cecca4ea732d66943799f8ae9460220c2267fe1d79d
|
|
| MD5 |
464379bfb5e6ee060d9e44accbe667f9
|
|
| BLAKE2b-256 |
6f3fda527df488f72d2b44de5378574fc46716a0d7557e87bbc14d13198792de
|
File details
Details for the file etoon-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etoon-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 343.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d321817e79e6afe5068c2c2bc688498bb72220bf5dabaf11ea37724d70bcdee3
|
|
| MD5 |
c56b5269ea1fc06b9e4e13b7194d867c
|
|
| BLAKE2b-256 |
0e8cbd1406a34970f3234d03c25e788325a26dd996bc8470dc601157659f0223
|
File details
Details for the file etoon-0.2.1-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: etoon-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 321.1 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ae78204692e77fea74e8eda17362bb01c6c551d759ac46b53b0dff9c7026f61
|
|
| MD5 |
624b357db7560f455634dcd3a9d4d91b
|
|
| BLAKE2b-256 |
af1fe2a7aa694eae328b0e85f62275ab50626fe8b0f353d4293d7a5649385812
|
File details
Details for the file etoon-0.2.1-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: etoon-0.2.1-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 342.1 kB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7127cf4854df2ab5dde78e98d2bb2c83aacfe0e0d77638e9a3107ec315ae42d5
|
|
| MD5 |
516636938bc721708e78b4ed07f0942c
|
|
| BLAKE2b-256 |
6d5409c1b39754206b661f19028046f06326f4f6903584ee02d90ef6e4d1f390
|