Pure-Rust + WebAssembly runtime for Needle — a 26M-parameter tool-calling transformer
Project description
A pure-Rust + WebAssembly runtime for Needle by Cactus Compute — a 26M-parameter transformer that maps (query, tool list) → JSON call in one forward pass. Deploys to browsers, edge workers, CLIs, Python, and no_std embedded targets. No server, no API key.
Tool calling usually means either a paid API call or hundreds of megabytes on disk. needle-rs ships the whole agent in 23 MB.
| Stack | Deploy size | Latency | Cost | Privacy |
|---|---|---|---|---|
| OpenAI function calling | SDK + hosted API | 300–800 ms | $ per token | leaves device |
| llama.cpp + 1B local model | 700 MB+ | varies | free | local |
| ONNX Runtime Web + a model | 8 MB + your model | varies | free | local |
needle-rs + Needle |
258 KB + 22 MB | ~280 ms | free | local |
Same answer to "did the user ask for a flight booking?" — at a fraction of the footprint.
|
Browser / Node npm install needle-rs
import init, { NeedleWasm } from "needle-rs";
await init();
const engine = NeedleWasm.load(weights, vocab);
engine.run(
"Book a flight from London to JFK tomorrow",
toolsJson
);
// → {"name":"book_flight","arguments":{...}}
|
Rust cargo add needle-infer
use needle_infer::NeedleEngine;
let engine = NeedleEngine::load(
"needle.safetensors",
"vocab.txt"
)?;
let result = engine.run(query, tools_json);
println!("{}", result.text);
|
Python pip install needle-rs
from needle_rs import NeedleEngine
engine = NeedleEngine.load(
"needle.safetensors",
"vocab.txt",
)
result = engine.run(query, tools_json)
print(result)
# → [{"name":"book_flight","arguments":{...}}]
|
Get the weights
huggingface-cli download Abdalrahman/needle-rs-safetensors \
needle.safetensors vocab.txt --local-dir weights/
Or load directly from a URL in the browser — no install step.
| Target | Status | Binary |
|---|---|---|
| Browser (WASM) | ✓ | 258 KB |
| Node.js (WASM) | ✓ | 258 KB |
| Cloudflare Workers | ✓ | 258 KB |
| Linux / macOS / Windows CLI | ✓ | 533 KB |
| Python (native wheel) | ✓ | pip install needle-rs |
| C / C++ / Go / Swift (via FFI) | ✓ | 557 KB |
no_std embedded (Rust) | ✓ | size varies |
| iOS / Android (use Cactus) | — | — |
| Apple NPU / Snapdragon NPU (use Cactus) | — | — |
Cactus's official engine targets mobile and NPUs with hand-tuned ARM SIMD. needle-rs targets everywhere else. The two stacks are complementary.
Needle is a 26M-parameter encoder-decoder transformer with a small twist: it's trained to do exactly one thing — emit a function-call JSON object from a query and a tool list. That focus is why a model this small works at all.
| 1 | Encoder–decoder SAN. The encoder reads the query and tool definitions once. The decoder generates output JSON token by token, attending to the encoder's cached KV. Single forward pass per call. |
| 2 | INT4 quantization. All attention and FFN weights are packed 4-bit nibbles with per-32-row scales. Matvec dequantizes on the fly — the full f32 weight matrix is never materialized. AVX2 on x86_64, NEON on aarch64, scalar fallback for WASM. |
| 3 | Constrained decoding. A character-level trie over valid tool names and argument keys, plus a three-state JSON machine, masks logits at every step. Output is always syntactically valid JSON pointing at a real tool — never a hallucinated function name, never broken syntax. |
| 4 | Two schema formats. Accepts both the flat {"location": {"type": "string"}} style and OpenAI's {"type":"object","properties":{...}} style. The Python reference handles only the flat form. |
| 5 | Greedy by design. Tool calling is a routing task, not a generation task — temperature would only introduce errors. needle-rs is argmax-only and intentionally does not support stochastic sampling. |
Architecture deep-dive: ARCHITECTURE.md.
A common failure mode for from-scratch model reimplementations is silent drift — outputs that look right but diverge at the third decimal place, with rare and untraceable downstream bugs. needle-rs rejects that. The Rust engine is required to produce the exact same token ID sequence as the Python/JAX reference on every input, at every decode step.
The test suite generates 560 inference examples by running the Python model on a diverse input set: five tool-name conventions (snake_case, camelCase, PascalCase, UPPER_SNAKE_CASE, kebab-case), parameter counts from 0 to 8, tool arrays from 1 to 20 entries, and a spread of natural-language query phrasings. For each example we capture the Python model's complete output token sequence. The Rust engine is then run on every example and required to produce the identical sequence.
560 / 560 pass. Not approximately — same
argmaxdecision at every step.
Token-exact parity is checked on every CI run. Any change that drifts gets caught before merge. The reference vectors are committed to the repo, so the parity contract is version-pinned and reproducible without re-running Python:
- Reference generator:
tools/gen_e2e_vectors.py - Reference data:
tests/e2e_vectors.json - Rust parity test:
crates/needle-infer/tests/e2e_parity.rs
Plus 55 unit tests on the constrained decoder covering edge cases the parity suite doesn't reach (empty tool arrays, parameter-less tools, name-collision under snake_case normalization, max-length queries).
JavaScript / TypeScript
engine.run(query, tools) // → string
engine.run_stream(query, tools, (id, piece) => {}) // per-token callback → final string
engine.run_batch([{ query, tools }, ...]) // → string[]
engine.encode_contrastive(text) // → Float32Array | null
engine.retrieve_tools(query, descriptionsJson, topK) // semantic tool routing
Rust
engine.run(query, tools_json);
engine.run_stream(query, tools_json, |_id, piece| print!("{piece}"));
engine.run_batch(&[(q1, t1), (q2, t2)]);
engine.encode_contrastive(text); // → Option<Vec<f32>>
engine.retrieve_tools(query, descs, k); // → Vec<(usize, f32)>
C (and anything with FFI)
#include "needle.h"
NeedleHandle h = needle_load("needle.safetensors", "vocab.txt");
const char *out = needle_run(h, query, tools_json);
printf("%s\n", out);
needle_free_str((char *)out);
needle_free(h);
Full header: crates/needle-c/include/needle.h. Null-safe throughout; errors via thread-local needle_last_error().
Intel i7-1185G7 (Tiger Lake, 4-core), Linux, release build, median of 5 runs.
| End-to-end (load + infer) | 283 ms |
| Warm inference only | ~80 ms |
| INT4 matvec 512×512 (AVX2) | 83 µs · 3.2 Gelem/s |
| INT4 matvec 2048×512 (AVX2) | 311 µs · 3.1 Gelem/s |
Apple Silicon NEON path is implemented but unbenchmarked — M-series numbers welcome via PR.
Footprint, stripped release:
| WASM module | 258 KB |
| CLI binary | 533 KB |
| C shared library | 557 KB |
| Weights (INT4 SafeTensors) | 22 MB |
| Runtime dependencies | 1 (libm; WASM adds wasm-bindgen) |
Full methodology and raw numbers: BENCHMARKS.md.
|
✓ Browser-side intent routing Decide which API to call before making the network request. Sub-second, zero servers. ✓ Edge function dispatch Tool calling inside Cloudflare Workers, Vercel Edge, Deno Deploy — anywhere with a WASM runtime. |
✓ On-device privacy User queries never leave the browser tab. Useful for healthcare, legal, and any context where sending text to OpenAI is a non-starter. ✓ Embedded agents
|
What it's not good for: open-ended chat, long-context reasoning, anything where you'd reach for a >1B-parameter model. Needle is a router, not a generalist.
Needle is designed and trained by Henry Ndubuaku and the Cactus Compute team. The model architecture, training code, dataset, and weights are entirely their work, released under MIT. needle-rs is an independent Rust runtime — no upstream code is copied, only the published architecture is implemented.
If you find this useful, please star the upstream Needle repo as well.
@software{needle2026,
author = {Ndubuaku, Henry and {Cactus Compute}},
title = {Needle: A 26M-Parameter Tool-Calling Transformer},
year = {2026},
url = {https://github.com/cactus-compute/needle},
license = {MIT}
}
@software{needlers2026,
author = {Ibrahim, Abdalrahman},
title = {needle-rs: Pure-Rust WASM Runtime for Needle},
year = {2026},
url = {https://github.com/geekgineer/needle-rs},
license = {MIT}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 needle_rs-0.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 226.1 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af82c69ad2fa9e5f9a79e96161e4d2336585c9f687f6442adc8d3e4ad0ca8037
|
|
| MD5 |
b6b5e65dd1ea816cfcf88ee2b92dae50
|
|
| BLAKE2b-256 |
3acff82ef0dce409b3e56d2abf87a67162d73be26986baac2341edad6624989e
|
File details
Details for the file needle_rs-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 373.5 kB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df9d6591e19a78afdd1cf861f3ffcc2bc006df50be10cf2980654eb7f7bd0f29
|
|
| MD5 |
5d51e9f1f79c5532ca887769740fdd6d
|
|
| BLAKE2b-256 |
44f8643d229c09692a2bd0ec3cf00ec9d5e22d91e906b85c75e49cc74a01929d
|
File details
Details for the file needle_rs-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 311.8 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1be32633ea5d9204107ac905fdfd7763fe86cdeb7b099ddbe20fdb1d14247787
|
|
| MD5 |
751f32a1dc7c1e3f46575eb8f7056b2f
|
|
| BLAKE2b-256 |
60d8890378660b80b15edd24338598789c5514b28d9a0d83c337b27463bb829c
|
File details
Details for the file needle_rs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 277.7 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eba4fdf0537f2cbc252599aee616086663f45e4255bc972fead22587aa5225c4
|
|
| MD5 |
7e1d6e41f65548962c2159e60152faf1
|
|
| BLAKE2b-256 |
e8e010a3c6243e81ab9c52dede01ced21e78d2d3a6433a475416b13e8245affb
|
File details
Details for the file needle_rs-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 297.8 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc10e813f9bce3f09332b2993e289c25244722676845b823400bacee62ed5159
|
|
| MD5 |
53e4b1c0a85ae293dbf05d651d1a1614
|
|
| BLAKE2b-256 |
62737e102b37b82aa0a06ca532f8fa717a6cc59509cb9f6e0b76814b8069c948
|
File details
Details for the file needle_rs-0.1.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 227.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a85c4a7856b3bb93d717bba6f510b40f14552f6c534fc52d1055c669ea98cd3
|
|
| MD5 |
b2d19a818446f1a1cee3f180785934ea
|
|
| BLAKE2b-256 |
9360117a1b84e3cdb9996088d96264ff9b890ce2e841b8c74f66375d4488e57b
|
File details
Details for the file needle_rs-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 375.0 kB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f86438a34656473df9a0def0beb52adbc279f302c3c22994b0b4757bacbbf098
|
|
| MD5 |
5cdfaef657c6067d3f05207b5de6d5a4
|
|
| BLAKE2b-256 |
7be6c1557c73a80d4f6c8622589697d5d5413ea50876d914d25e3fd6d6828a88
|
File details
Details for the file needle_rs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 313.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8bf6c9769a4cdb8b0c9ed507327e9307e2b30eb69083c777fd45da99bd68452
|
|
| MD5 |
378dae1f69af141ae6e3b6bcc3dc2bf6
|
|
| BLAKE2b-256 |
2dd854574991189f4299aab4a021184f5f5222d314920b39f62cfba8d6a707d9
|
File details
Details for the file needle_rs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 278.6 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9748c2abc8baee4cddc9b08f81641ec699e7707ce2548495bd03b80014d45698
|
|
| MD5 |
e0cdc3978dabe2ca3a69f86a96ec4b10
|
|
| BLAKE2b-256 |
b8b9de6a2718b1a1da69ade4f196fa17c3fcbe02c124bcfad24aeb6e0bcdad0a
|
File details
Details for the file needle_rs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 299.2 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
258f48743ec59da0e66692742316b40188104cf6d282b51809d7eeb98f4f68a7
|
|
| MD5 |
d5caabce20395f51a44ae3acee4a2680
|
|
| BLAKE2b-256 |
1818b95759ec609e736e7e50605edb6f83f288bbecd1af3982c75da343dfdcfa
|
File details
Details for the file needle_rs-0.1.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 227.1 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06d4658ebda35e86caac0fce89b312d518a81d65d107078f7c352ecdc85237fd
|
|
| MD5 |
a0d050c74aca48028a2e575d48aede2c
|
|
| BLAKE2b-256 |
622ce7cd8aad97ed0ba4aa1360e4cde70705d456398c6260742c0b7dc1e5bba4
|
File details
Details for the file needle_rs-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 375.0 kB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b3213387dda48ca2ac4e6ce0b1eb03f0492cdf1a7d4e44475a714e6c743ff58
|
|
| MD5 |
c46e34915f69d1f0a06d288e3259ed77
|
|
| BLAKE2b-256 |
b30dc0849544518ab34577dea0b823bfc15a3f2c9171daf0010984b1fef856f1
|
File details
Details for the file needle_rs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 313.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7814789b237ec13c8c93e00a37811d91e55fc2b476a9dc3b2619e0036f12f9d1
|
|
| MD5 |
c3e0368d91526a7e4ecfbd70cd5f2c9f
|
|
| BLAKE2b-256 |
17865bc66685d37881bf884e0b25c0733f7e04bacba39fcb3e138c3f392f40a5
|
File details
Details for the file needle_rs-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 278.7 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a833027656bd790c75852dd018e6ee91abbb7cdfabc047a8ab18dbe900f0283
|
|
| MD5 |
16474fa523712b23452b60cae1237423
|
|
| BLAKE2b-256 |
14d677972856c6a48d4803091d12b3d938654d48e3ace44104ae81ee4a1e71eb
|
File details
Details for the file needle_rs-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 299.3 kB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b9b7bff2edcac8f31e1bd60ad1e3ef8aa4ca31370c84a55ae132134fd5b693a
|
|
| MD5 |
c1152c2a5c489d3198753b659fe6eb2d
|
|
| BLAKE2b-256 |
0e45a61d24e3602c6baead443e38daf3edc6a5bc40bca3ec11b7cb16ff52b245
|
File details
Details for the file needle_rs-0.1.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 227.4 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c37d6838b9819480210ff9f3025a4f4dc7fa9c620e37899023cf146fe5d53328
|
|
| MD5 |
6a36b17bbfde371b897b74329fe685f9
|
|
| BLAKE2b-256 |
591a26c6c428fc1a71c7f4ceb142a1a83cffd72d56e256b94423f49319d299ce
|
File details
Details for the file needle_rs-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 375.4 kB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8e90130a1d72504eb36afa0552b655c722e4e37642465ed110ad7414da076e7
|
|
| MD5 |
cf8329f0dece949d7cf0f225751b2adc
|
|
| BLAKE2b-256 |
0472459b76c8b4cf60667bdbf7b4a38148995202d47ab79b16f30a539ce62322
|
File details
Details for the file needle_rs-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 313.5 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbc380b41e5796e80dbcd437da253b9d9f3cc59251c329b4fd9f0c0649f3b8d1
|
|
| MD5 |
35402040aa1f21614e99287ca2f9d325
|
|
| BLAKE2b-256 |
99f23ca8b7ddb451f38e0f0ca0e8028f752287c6471bcdc1696d242e800cacf6
|
File details
Details for the file needle_rs-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 278.8 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6327fd6ed1e171249c4b8e18529ce5552278f2163f719b73e65c61ec49fccd9b
|
|
| MD5 |
ea374802438a67fbbae0a468a25ac28b
|
|
| BLAKE2b-256 |
2fdd9e69450719c9e7c952d4177e8f5c02ef30d4327edf5c8a331e9148ffcfd4
|
File details
Details for the file needle_rs-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 299.5 kB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eec52e175b2809db3f9038cfb54d4e11b7641316560dbab430951aa07f2380d9
|
|
| MD5 |
5919874fb18da3a2e6df40cb9a27b6c3
|
|
| BLAKE2b-256 |
a47f71e4cbdeaca48fb678f6b60d9f61964793fb9d8165f412c7ece6b01a816b
|
File details
Details for the file needle_rs-0.1.0-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 227.4 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a6afee68b23c748a806941ba495ebae9f61df0e0e8a68a084651393f07f80f4
|
|
| MD5 |
008919726645441ad63e207518cbe8f1
|
|
| BLAKE2b-256 |
ccd4d46fc502a55eef26ad2186e180b7ec0312980ee6fb6ebb76e666c707f8e2
|
File details
Details for the file needle_rs-0.1.0-cp38-cp38-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp38-cp38-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 375.4 kB
- Tags: CPython 3.8, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b529fdb47dc3adf00fea7869c61da359ecf1b65ff6335fe4cfea524cb2f74279
|
|
| MD5 |
32c6d18d12825a6b44da198a7cb7c3ce
|
|
| BLAKE2b-256 |
1fb383aac5b6af9a917423130fbf72a6e0dea0d38bfe9ad4cf6286961f5c1fc7
|
File details
Details for the file needle_rs-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 313.5 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa9d3667e13734eae7e42c5805e272c250609e0cc393ab352e644272436f6778
|
|
| MD5 |
01a1a76519442b748587c14ea42104dd
|
|
| BLAKE2b-256 |
bdc961581f6bea0512b0ade7bf8aea3837a0b5aeddcc465ac7706d656a16a323
|
File details
Details for the file needle_rs-0.1.0-cp38-cp38-macosx_11_0_arm64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp38-cp38-macosx_11_0_arm64.whl
- Upload date:
- Size: 278.8 kB
- Tags: CPython 3.8, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e3ebe25c6dfe0283e7201f90f6c939e5d781b809baafbec88591e720501445c
|
|
| MD5 |
1f0d78636996c17275c67d5c538e871e
|
|
| BLAKE2b-256 |
0c412e36fdd59729778156aad1a7c1910131907b576220ea83d1eab6b044db6e
|
File details
Details for the file needle_rs-0.1.0-cp38-cp38-macosx_10_12_x86_64.whl.
File metadata
- Download URL: needle_rs-0.1.0-cp38-cp38-macosx_10_12_x86_64.whl
- Upload date:
- Size: 299.5 kB
- Tags: CPython 3.8, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2c599eed67df54360514092005dc6f1923ab6068f85cc4e38cf9fb945796369
|
|
| MD5 |
31cf69df0f856f694edfa46731603ef3
|
|
| BLAKE2b-256 |
8b6dcc2b78b27bb628b7a3d0048859e2f037bdd530d3c5202af438c03f7358cb
|