Skip to main content

naina — reads any document, one C++ core, every language

CI License GitHub stars

PyPI npm npm wasm pub.dev crates.io

Read any document. One C++ core, everywhere.

Try it online · Documentation · Architecture · Roadmap · Model weights

Use it in your browser now → No install, no upload, no account. PDFs and images, in ten scripts.

Scripts

language Reads
(default) Latin, Chinese, Japanese
arabic Arabic, Persian, Urdu
cyrillic Russian, Bulgarian, Serbian, Mongolian
devanagari Hindi, Marathi, Nepali, Sanskrit
el Greek
eslav Ukrainian, Belarusian, Russian
korean Korean
ta Tamil
te Telugu
th Thai
page = naina.read("invoice.png", language="devanagari")

A tier picks model size; a language picks the alphabet. Detection and layout are script-agnostic and shared, so a language costs one 8 MB model rather than three.

Choosing wrong is silent. Read a Hindi page with the default alphabet and it returns fluent-looking Latin at ~0.75 confidence, not an error — confidence measures certainty within the model's own alphabet and cannot express "wrong alphabet". An unrecognised language value does raise.

v0.2.0 is out on PyPI and crates.io. The web app and docs are live. npm and pub.dev are blocked on account setup rather than on code — see the table below.

Packages

Package Registry What it does State
naina PyPI Python, self-contained wheels published
naina crates.io Rust over the C ABI published
@jvoltci/naina npm Node, inference off the event loop built; publish blocked, see below
@jvoltci/naina-wasm npm Browser, 143 KB brotli built; publish blocked
naina pub.dev Flutter, FFI built; Android verified on a device, iOS unproven
MCP server for LLM tools works, in-repo

The npm publish fails with E404 on PUT @jvoltci/naina, which means the @jvoltci scope is not resolvable for the authenticated account — it must exist as an npm org or match the account's username. (Unscoped naina on npm is already taken by someone else, so the scope is not optional.)

import naina
import numpy as np
from PIL import Image

img = np.asarray(Image.open("invoice.png").convert("RGB"))

# One-liner: image -> markdown
print(naina.read(img))

# Or keep an Engine around
engine = naina.Engine(tier=naina.Tier.SMALL)
page = engine.read(img)
for line in page.lines:
    print(f"{line.confidence:.3f}  {line.text}")

Why

OCR accuracy is a solved commodity. PP-OCRv6's weights are Apache-2.0, so naina runs the same models PaddleOCR runs and gets the same accuracy. Competing there is unwinnable and pointless.

The gap is distribution. Every existing tool is locked into one lane:

Tool Lane Cannot do
PaddleOCR Python, server No Node/Rust/browser/C ABI. Training framework first, huge surface
RapidOCR Multi-language, as separate ports Behaviour drifts between the Python, C++, Java and .NET versions
oar-ocr Rust only No Python/Node bindings, no shipped WASM
retto Rust only, det+rec only No bindings, no layout
client-ocr Browser only No server, no native
ML Kit (Google Lens) Mobile only, closed weights Cannot self-host; 5 scripts only
MinerU / marker / docling Python, GPU-leaning Licence traps, heavy installs

Nobody ships one engine that runs identically everywhere. This is llama.cpp's playbook applied to OCR: llama.cpp won on portability and zero dependencies, not on inference math.

No OpenCV. No pyclipper. No PaddlePaddle. The convex hull, minimum-area rectangle, polygon offset and contour tracing are ~450 lines of tested C++, because a 300 MB dependency tree would defeat the point of an 11 MB tier.

What you get

Three device tiers. A size axis, not a licence axis — every model naina ships is Apache-2.0 and safe for commercial use.

Tier det rec layout Total Target Charset
tiny 1.8 MB 4.5 MB 4.9 MB ≈ 11 MB Browser, phone, Pi Zero 6,904 (CJK + Latin)
small 9.9 MB 21.2 MB 23.5 MB ≈ 55 MB Laptop, Pi 5, mobile app 18,708 (50 languages)
medium 62.0 MB 76.6 MB 130.5 MB ≈ 269 MB Server, desktop 18,708 (50 languages)

PaddleOCR ships no ONNX build of the small layout models, so naina converts them itself — byte-deterministically, and verified per-column against the Paddle original. Without that, layout would exist only at the 269 MB tier and an 11 MB browser build could not describe document structure. See tools/paddle2onnx_layout.py.

Every binding over one C ABI, so behaviour cannot drift between languages:

Binding Status Install
C / C++ ✅ works naina.h — the contract every other binding targets
Python ✅ works, unpublished build from source; pip install naina once released
Node / TypeScript ✅ works, unpublished build from source; needs a local toolchain
Rust ❌ v0.5
WASM / browser ❌ v0.4

Weights are mirrored, not borrowed. naina fetches from its own release, not from upstream hosting, so an upstream re-tag or deletion cannot break installs. Every file is pinned by sha256, so a corrupted or substituted download fails closed rather than producing silently wrong output. Provenance for each artifact is recorded in NOTICE and as a source_url in the manifest.

Benchmarks

Real measurements, not vendor claims.

End-to-end, tiny tier, Apple M3 Pro — rendered text fixture, 480×140:

Line Recognised Recognition conf Detection score
1 HELLO WORLD 0.967 0.899
2 naina 2026 1.000 0.925

Reproduce: ctest --preset macos-arm64 -R test_ocr_e2e --output-on-failure

On the accuracy numbers everyone quotes. Vendors self-report 96.33% on OmniDocBench v1.6 while independent evaluation of the same benchmark tops out around 90.1%. naina will publish per-device numbers with the harness in-repo and the command to reproduce them, or publish nothing. A full benchmark matrix lands with v1.0.

Status

v0.2 — text spotting works end to end. The honest state:

Component Status
C ABI (naina_read, page accessors, stage-level access)
Model registry — manifest-driven, sha256-verified, tier fallback
Detection — PP-OCRv6 det, DBNet decode
Recognition — PP-OCRv6 rec, CTC greedy decode
Geometry — convex hull, min-area rect, polygon offset, no OpenCV
Page storage — pointer-stable, markdown + JSON
Python binding
Node binding
ONNX Runtime backend
NCNN backend ⚠️ compiles, but FindNCNN.cmake does not locate a brew install
Recognition batching (one strip per call today) ⚠️ correct but unoptimised
Layout analysis → structured markdown ❌ v0.3
WASM + browser app ❌ v0.4
Rust binding ❌ v0.5
Cross-binding parity enforced in CI ❌ v1.0
MCP server (mcp/, 2 tools, verified over stdio)

13 C++ tests, 6 Python tests, 6 Node tests. CI builds on Linux (gcc + clang) and macOS arm64.

Not supported, deliberately: handwriting (PP-OCRv6 is weak at it and claiming otherwise would be dishonest), autoregressive VLM parsing, training, and chart/formula semantic extraction.

Install

Not yet on PyPI or npm — see the note at the top. Build from source:

cmake --preset macos-arm64           # or linux-x86_64, linux-arm64, windows-x86_64
cmake --build --preset macos-arm64
ctest --preset macos-arm64

Requires CMake ≥ 3.24, a C++20 compiler, yaml-cpp, libcurl, and ONNX Runtime.

naina ships no image decoder on purpose — it takes raw pixels. Use Pillow, OpenCV, sharp, or anything else that hands you a buffer.

Environment

Variable Effect
NAINA_CACHE Where weights are cached. Default ~/.cache/naina/models
NAINA_OFFLINE=1 Disable network; use only what is already cached
NAINA_REGISTRY Path to registry.yaml. Both bindings set this automatically

MCP server

An agent can read documents through naina directly:

{
  "mcpServers": {
    "naina": { "command": "npx", "args": ["-y", "@jvoltci/naina-mcp"] }
  }
}

Two tools: read_document (markdown) and read_document_detailed (per-line text, confidence, quads). See mcp/README.md.

Reading a page carries no session state, so the server is written stateless — which is what MCP spec revision 2026-07-28 formalised. Note that the current SDK (1.30.0) only negotiates up to 2025-11-25; the newer revision is a dependency bump away, not a rewrite.

Documentation

The name

naina (नैना) means eyes in Hindi. The library reads.

It began as a face-recognition runtime under the same name. That work is preserved on the face-stack branch, and the engine it produced — C ABI, backend abstraction, manifest-driven model loader — is what made this pivot cheap.

Contributing

PRs welcome. See CONTRIBUTING.md. Open a Discussion for anything beyond a small fix.

License

Apache-2.0. Redistributed model weights are also Apache-2.0 — see NOTICE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

naina-0.2.1.tar.gz (333.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

naina-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

naina-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl (9.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

naina-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl (15.2 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

naina-0.2.1-cp313-cp313-macosx_13_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

naina-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

naina-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl (9.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

naina-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl (15.2 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

naina-0.2.1-cp312-cp312-macosx_13_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

naina-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

naina-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl (9.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

naina-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl (15.2 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

naina-0.2.1-cp311-cp311-macosx_13_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

naina-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

naina-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl (9.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

naina-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl (15.2 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

naina-0.2.1-cp310-cp310-macosx_13_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

naina-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

naina-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl (9.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

naina-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl (15.2 MB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

naina-0.2.1-cp39-cp39-macosx_13_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.9macOS 13.0+ ARM64

File details

Details for the file naina-0.2.1.tar.gz.

File metadata

  • Download URL: naina-0.2.1.tar.gz
  • Upload date:
  • Size: 333.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for naina-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ae4e29880ef90f5492a9457531f1aa7a112f2332f61ce64bf1e6a98db1766638
MD5 8c49b7807ee7c7bb81c4dcb18c36a1f2
BLAKE2b-256 b43c4f584619aab193f597fdcbb22bca06e617b46ac9ff091add55ecffe3f5b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1.tar.gz:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 596fb12ab8bc0d38d50c40d43c20a92e91021115ddc3741fb6a890c24b431beb
MD5 64169db30d58190092bd7ee7c69b149c
BLAKE2b-256 2ff20c14fb40eff2b0f8127e3ebc498b8f13c54ed0dd01f7cfe5bd0acb247cc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fa9f4f57c2f104098b6d33e52dbaffda4bf3836d516e45933c4606340e115a76
MD5 ffd7539b51027527cc7c597e06594176
BLAKE2b-256 d0d3fb0aa89a830118234ceef3a11c37cf9ceb0fc4499e37cd48cc1a3ef6b0da

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 75f9e4ec309ed2366dcca1b92f5e4bd0fd963e182f782922338fbb30c1f17a62
MD5 617684c0aa673df937fad234fef98d62
BLAKE2b-256 6918bf74add930c138ce33c98a43e068e8ca33767e97612d18a120d58de71c6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 3b54a5c782cdea6bc26fe6a17ef88167cc3dd4b46930d6bba5469d17233ae968
MD5 97d0b5422886dd100f39eb1498cedf8d
BLAKE2b-256 3e640737c721ded775ba36b3ab3661173d816314db118feef339be54a08851de

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp313-cp313-macosx_13_0_arm64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9882b8cd3bbaa87c8ee3f10504e99e0d0102bf7b6151b4a457eb4b84cadc3739
MD5 2fe4f52963588b04deaabed454c9a05b
BLAKE2b-256 a8c12fc79095de6a8bb517d1dedd760b4f145b294d151c6db6bc9f8ec2e3cbb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e7bfe4801bf05d8f0c1bf9ca07e4fb2085a9494c7d6150d9e25d345a1e051e2
MD5 9dfafe1e4da137f475d5e450026c714d
BLAKE2b-256 dca968b9900a486b990bcc20c73588018b28b619f284f583f93439a903b65e14

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 036864dcd3fcbc68df1622d113735f5fe3c4e58acd4d289514fe6c28ad880c5e
MD5 07b4a30bc67f8564981970546d870940
BLAKE2b-256 db2b7f3fb87bd3276d0e5d41e232df371f52aa7f1e29ba41542d4d0e7925c8be

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7231f7c0e3050b956036ab07a320e3032dc2872cc5095a36eff1557ea58f001d
MD5 2771f35c452a8be68f0be18d2b2cb061
BLAKE2b-256 e91bf7ef0a0beed19f7895b306651c4160ce53e618f3de6b638023df216826f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp312-cp312-macosx_13_0_arm64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 65aa175a8177a77ce6273e7e3126aa87d952f08e1f97babc7f4289d0790e00d8
MD5 116a4e5f1fe49497b5f2c1f74d970069
BLAKE2b-256 ed06429d3f40088ed6f9bf03b60680ac313fc9f796b1322b5e774caa1fd098ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 05ec6eb580bfc561e4d2237099d3956b86c6b5c13ce7de37db807e690a2915a8
MD5 8b1bc4d1948d6cf1a46dbbae17572449
BLAKE2b-256 47ecf6c4224c7a7f87f681ab758dfa761a8da804038bda8fe644ef18d9bd8f11

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 ad65a6b1903b4260e4c0b3b639187b50ece8aade179dbdeab11efdaa92400c2f
MD5 c84a0fbbd9d3f2d3729c533fff75a9bf
BLAKE2b-256 46b4ce7bbe57fa5067d9c5c82ca7446bf78412c382e9f30a97a81f1761f20dd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7263293115d7c4777626292d3692e9281b0024f09b87767d5fc7ff18171fdb21
MD5 62fa9f4e2e7f7e58e8fdef50b4fb551a
BLAKE2b-256 36c3fb8266defdf6a8617b0f60e209fb7b13b763ff3592a244b61cb75ab40868

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp311-cp311-macosx_13_0_arm64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ea5410c94914d3dc938b1c57272851168d5e27e0b25a8b8c58884f8fe3283a2
MD5 ce7d1e8ace30645ebaccc565f19f3ba5
BLAKE2b-256 7b4e51d24b0565fe161c51783830b6f1c5f85b44fd73a1f4fb8002692c878869

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 97f5cbd160ac0d5d6e2c8cc02a210b666470fd8c366f4910b126e62062ef21d3
MD5 016c6abac6442c1a77e31dd8fe264cc2
BLAKE2b-256 6857288c9f0b9aafa4a4dfee4eb0c9a5a7a38960e2d47a670321c75aed56e125

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4ad8a94d87153e8538ffd1f3f162c10dfd714b9038e59c8e691c6afd638aae1a
MD5 24afbc7708cc299e6468d9b46e6a7a75
BLAKE2b-256 dee351471327385d05565e935c135bfebcf4586b498c68b0d51d35e3f123a055

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f3e9fea64982efbab34f92a110960f06831bc2792586118eacc2e003978afa6f
MD5 5d9c5e532268f1758f095c3adddd397c
BLAKE2b-256 9fdc81294a08d7a66bfd2eb4f26ad60544033f174c8fedb56269d01fe10e4dc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp310-cp310-macosx_13_0_arm64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 54a208f167178721463738b0273cc7c59792a7733e7f046b62f2e96e0409c7d5
MD5 ff730f2b2c0c166f2185afbbaf641a91
BLAKE2b-256 60f5d3ba04ef1d984ae6f7255d84e682b54d8a47dde0d96961e023649f12b396

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 720790ac84587990b3664db26b54cd9c2c8f38041fe98ab0a3de835f79ee4800
MD5 c2bf58d77d326065476bbeef3f3b0840
BLAKE2b-256 aa351e364014d5f34321d0f1c95eac79d65a3bd9b59e51560b6aeab21a5fc3fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for naina-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2d2fffd1a269348052a918b2297eafe4b04a93fc48de31d5a8e2a920b851891c
MD5 42eef3dab1c494e362eae322a0264679
BLAKE2b-256 00942efdc3d9d50daa7284d8566c56a7313b9d770d4aaf06408b6112517221f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naina-0.2.1-cp39-cp39-macosx_13_0_arm64.whl.

File metadata

  • Download URL: naina-0.2.1-cp39-cp39-macosx_13_0_arm64.whl
  • Upload date:
  • Size: 15.2 MB
  • Tags: CPython 3.9, macOS 13.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for naina-0.2.1-cp39-cp39-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f864337c3c192377ca4d2dcdeae1b5360397ef18e22a1ff5eead2193476a09d9
MD5 75c4a70e3c46eeb9a18d69a73a458c8b
BLAKE2b-256 0bc1a90cf3483fbd98eea98bb1a06a8aa1988a71d17c2ea170a04eece25f3b50

See more details on using hashes here.

Provenance

The following attestation bundles were made for naina-0.2.1-cp39-cp39-macosx_13_0_arm64.whl:

Publisher: release.yml on jvoltci/naina

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.1 This release

21 files

0.2.0

21 files

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page