Skip to main content
denosaurs

denosaurs

A JS sandbox for AI agents

Run untrusted, LLM-generated JavaScript safely in Python — real V8, real isolation, real tool-calling.


Publish PyPI License Docs

   ___
 _/ o \
 \____/
  |  |
   \  \
   |  |
    \  \
   /    \__________________
  /                        \________
  |                                 \____________
   \___________________                    ______/
       | |   | |       \__________________/
       | |   | |           | |   | |
       |_|   |_|           |_|   |_|

Documentation · Examples · Issues

16-18x faster repeat execution via context-isolated isolate pooling — ~3 ms cold Runtime() start vs. ~167-185 µs per pooled IsolatePool checkout+eval, measured with Criterion and pytest-benchmark, with a dedicated test proving no state leaks between checkouts. Proven, not claimed — see BENCHMARKS.md.

What this is

Agent frameworks and tool-execution runtimes increasingly need to run JavaScript the model itself wrote — a code-generation step, a small data transform, a "call this JS snippet to compute the answer" tool. That code is untrusted by construction. denosaurs embeds a real V8 isolate per runtime (via Rust/PyO3) so that code runs with no filesystem, no network, and no ambient Node.js APIs by default, with heap and wall-clock limits you set, and a real way to kill it if it doesn't stop on its own.

It is not a general "embed any JS anywhere" library and not a JS interpreter reimplemented in Python — it's V8, the same engine behind Chrome and Node.js, so the JS your model writes actually behaves like JS.

import denosaurs

denosaurs.bind_function("add", lambda a, b: a + b)
print(denosaurs.eval("add(2, 3)"))  # 5

Why it's different

  • Real V8, not a toy interpreter. Every language quirk, every standard library method, every performance characteristic your model expects from "JavaScript" is the real thing.
  • Cross-thread termination that actually works. A watchdog thread calling .terminate() on a runaway while(true){} used to panic instead of stopping the code (pyo3_runtime.PanicException: Runtime is unsendable, but sent to another thread) — a real bug in the upstream design that meant a stuck agent tool call couldn't be killed from outside. TerminationHandle fixes this: it exposes only the Send + Sync part of V8's isolate handle, so a watchdog on a separate thread can interrupt execution safely. See PATCH.md for the full root cause and proof; tests/test_termination_handle.py is the regression test.
  • Context-isolated pooling, so speed doesn't cost you isolation. A cold V8 isolate costs ~3 ms to create; IsolatePool keeps a small set of them warm and hands out a brand-new, empty V8 Context on every checkout — the isolate is reused, but no JS-visible global state (globalThis, etc.) ever survives from one caller to the next, even when they land on the same underlying isolate. Measured: ~3 ms cold-start → ~170-185 µs pooled, ~16-18x, with a dedicated test proving a globalThis value set in one checkout is gone (typeof x === 'undefined') in the next. See BENCHMARKS.md and src/runtime/pool.rs for the numbers and the reasoning.
  • A host-callback bridge for tool-calling from JS. bind_function/ bind_object let the sandboxed JS call back into Python — the primitive an agent needs when the model's JS wants to invoke a real tool, not just compute a value.

Get Started

pip install denosaurs  # or uv pip install denosaurs

Requires Python 3.10+ on macOS or Linux. denosaurs is experimental — expect breaking changes between versions.

Quickstart: sandboxed eval, tool-calling, and a timeout

import asyncio

from denosaurs import Runtime, RuntimeConfig

# Cap memory; the runtime terminates itself if JS tries to exceed it.
config = RuntimeConfig(max_heap_size=10 * 1024 * 1024)  # 10 MB


async def main():
    with Runtime(config) as runtime:
        # The tool-calling primitive: expose a Python function to the sandboxed JS.
        def get_weather(city: str) -> str:
            return f"72F and sunny in {city}"

        runtime.bind_function("getWeather", get_weather)

        # Model-generated JS calling back into your tool.
        result = runtime.eval("getWeather('Zurich')")
        print(result)  # "72F and sunny in Zurich"

        # Enforce a wall-clock timeout on code that might not terminate.
        try:
            await runtime.eval_async("while (true) {}", timeout=2.0)
        except Exception as exc:
            print(f"killed a runaway eval after 2s: {exc}")


asyncio.run(main())

Running an untrusted sync eval() you can't await? Grab a TerminationHandle before the call and .terminate() it from a watchdog thread — see tests/test_termination_handle.py for the exact pattern (and the bug it fixed, in PATCH.md).

For a fast path when you're running many short-lived, independent snippets (e.g. one per agent turn) and don't need bind_function/modules for that particular call, check out an isolate from a warm IsolatePool instead of paying full cold-start cost each time:

from denosaurs import IsolatePool

pool = IsolatePool(size=4)
with pool.checkout() as isolate:
    print(isolate.eval("1 + 41"))  # 42

Integrations

  • FastMCP tool bridge - expose FastMCP tools to sandboxed JS via bind_function and an in-process fastmcp.Client
  • pydantic-ai "code mode" agent - an agent tool where the model submits one JS batch script instead of many separate tool calls, run safely with a timeout
  • Vendored npm libraries - run real npm document-generation libraries (pptxgenjs, pdf-lib) from their browser bundles inside the sandbox; see the guide for what makes a library a good candidate
  • Arrow IPC dataframes - move 100k+ row tables into the sandbox as Arrow IPC bytes instead of JSON objects (5 ms vs 253 ms, and it works at the default 10 MB serialization limit that rejects the JSON payload); see the guide

Documentation

  • Quick Start
  • Concepts: runtimes, type conversion, resource controls
  • Guides: binding functions, module loading, snapshots
  • Use cases: AI agent sandboxes, workflow runners, plugin systems
  • API reference
  • Benchmarks — measured, reproducible numbers, including the pooling comparison above

Metadata

Release files for denosaurs 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for denosaurs 0.2.2
File Size Uploaded Provenance Actions
denosaurs-0.2.2.tar.gz 343.5 kB With provenance Details for denosaurs-0.2.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for denosaurs 0.2.2
File Actions
denosaurs-0.2.2-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.28+ x86-64 Details for denosaurs-0.2.2-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
denosaurs-0.2.2-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details for denosaurs-0.2.2-cp314-cp314t-manylinux_2_28_x86_64.whl
denosaurs-0.2.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for denosaurs-0.2.2-cp314-cp314-win_amd64.whl
denosaurs-0.2.2-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for denosaurs-0.2.2-cp314-cp314-manylinux_2_28_x86_64.whl
denosaurs-0.2.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for denosaurs-0.2.2-cp314-cp314-macosx_11_0_arm64.whl
denosaurs-0.2.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for denosaurs-0.2.2-cp313-cp313-win_amd64.whl
denosaurs-0.2.2-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for denosaurs-0.2.2-cp313-cp313-manylinux_2_28_x86_64.whl
denosaurs-0.2.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for denosaurs-0.2.2-cp313-cp313-macosx_11_0_arm64.whl
denosaurs-0.2.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for denosaurs-0.2.2-cp312-cp312-win_amd64.whl
denosaurs-0.2.2-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for denosaurs-0.2.2-cp312-cp312-manylinux_2_28_x86_64.whl
denosaurs-0.2.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for denosaurs-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
denosaurs-0.2.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for denosaurs-0.2.2-cp311-cp311-win_amd64.whl
denosaurs-0.2.2-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for denosaurs-0.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
denosaurs-0.2.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for denosaurs-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
denosaurs-0.2.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for denosaurs-0.2.2-cp310-cp310-win_amd64.whl
denosaurs-0.2.2-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details for denosaurs-0.2.2-cp310-cp310-manylinux_2_28_x86_64.whl

Total release size: 327.7 MB

Release files / denosaurs-0.2.2.tar.gz

Download URL denosaurs-0.2.2.tar.gz
Size 343.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e245ab3ce9fdf15599eb0cfbffc7c786384cc39dfa6c44b9cd2b99a2db0762ad
BLAKE2b-256 checksum
How to use checksums
fd963c658b7376baafff83e46c18b16514665006ea692ea54415caba5a169172
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl

Download URL denosaurs-0.2.2-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
c6f44bbade0b3295fffb8931761041c225b498e05adadc2ab590af5227374b6b
BLAKE2b-256 checksum
How to use checksums
414b2aab8257e8886c0e9eeb97d0bd797d8c1bbe8d13d8e3b98b8eb5ec516f86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL denosaurs-0.2.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
879f0d07895f2c9368a630ac958298f37b3c3de481fd6c77bbd0bf067836823a
BLAKE2b-256 checksum
How to use checksums
28979a2dad63d33497ec94c22cccc00e1ed89b699ebaaf5faa010d1a92adf354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp314-cp314-win_amd64.whl

Download URL denosaurs-0.2.2-cp314-cp314-win_amd64.whl
Size 18.9 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
b867a78e8d7179d04cafe9284193adcfc407317965e1ded9ecec070c7d1fb219
BLAKE2b-256 checksum
How to use checksums
a7906f798a9443cd391b4ee140e0731297b92f2ae13c0f1f225bc15f2b9d5c45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL denosaurs-0.2.2-cp314-cp314-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2dabe76856e5060fcc8e4cdc3a711bfa55fc46f102854e06255a12d118b5b76a
BLAKE2b-256 checksum
How to use checksums
8a5f563a76db02890885bd8b1ba698459890d90cb3af0d408f111953981e63db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL denosaurs-0.2.2-cp314-cp314-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4b70661761d4ca0bb3def75763dfa907e10297b78585db9cc5e452abbdf9047b
BLAKE2b-256 checksum
How to use checksums
e545276ad5cdfe8346aa895173e4aa4dbd5a36035b9722b30436b211143c6fd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp313-cp313-win_amd64.whl

Download URL denosaurs-0.2.2-cp313-cp313-win_amd64.whl
Size 18.9 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
a0b0bd25bbeca0320c2888c232b3b5196d9a5afb956e5ef3b0a2049595972fe6
BLAKE2b-256 checksum
How to use checksums
2facb39b5b979e42eb0c4d45fee97a100d1b502a073654945fd189dae125b95a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL denosaurs-0.2.2-cp313-cp313-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5c6d2818fd7604ec71b0c889bdc3f7a01fe9760f59cfa816d810a37eb7482eb6
BLAKE2b-256 checksum
How to use checksums
d9d7d96e485af5611f51f984e59f5e0f320faa9033f038584f71e61cd8cac977
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL denosaurs-0.2.2-cp313-cp313-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
282851e7138891d240184e374e65673cd0b06de2c39a07d34b14155df9bec074
BLAKE2b-256 checksum
How to use checksums
112953dc1672c5402c914e5ba382aac7f4180f9381c9a141ab4f2699ec81a21e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp312-cp312-win_amd64.whl

Download URL denosaurs-0.2.2-cp312-cp312-win_amd64.whl
Size 18.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c913146a47f3565ccc6779337e9c198fb815a28bf64f74a91e493d59f292d09f
BLAKE2b-256 checksum
How to use checksums
304c586e72b351d7c19e614735302762eb943ccde982e7f73b86457f831aa74f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL denosaurs-0.2.2-cp312-cp312-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b4994ad59e17ef38958baab7161945c6214387c0b6c5aa14911e8796e942f40b
BLAKE2b-256 checksum
How to use checksums
439d070a7c7538dbcc63e1c912019bba6945df4c126349411e4df9fc504e27d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL denosaurs-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ae27bf5cdfddbcfa4c39aa85272b6543e01c2737d50363ca90200243804eb817
BLAKE2b-256 checksum
How to use checksums
11b1181a8203117ff96eb281c056eeb0585d79324ecb77d3fbdda780723fdfcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp311-cp311-win_amd64.whl

Download URL denosaurs-0.2.2-cp311-cp311-win_amd64.whl
Size 18.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cde9520d48030338077d5078b726b3432c930df1f8526251bd5371af9ec4afc1
BLAKE2b-256 checksum
How to use checksums
a8901e96fd5bc03525b0d812dfba48b50536cdd570fdc591d490d75d6c6d516d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL denosaurs-0.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0fa171351d205ed28cb0b6a7a556cda7c6b7bbd4d84dcba353ad5f21af62f43e
BLAKE2b-256 checksum
How to use checksums
1075de47f424f384ecb4ce8176b52ba070e3c4950bc206b1a1255cdd2d0f2c2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL denosaurs-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a6b7a3aa5bf2909bad9ab98d91286099cc4de8080de27915975952762e7ee180
BLAKE2b-256 checksum
How to use checksums
fb9be3289cf15b4740c2b186cee8aafc261f48bab85fbc417c332c3753aa2ec3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp310-cp310-win_amd64.whl

Download URL denosaurs-0.2.2-cp310-cp310-win_amd64.whl
Size 18.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
7c13e8958ea5daf06f0643d9a38c1a8b561ecda4dec314f9a9a28270d236dd0d
BLAKE2b-256 checksum
How to use checksums
f5e0a37037e485455aa382fd4b0cec95867f19c9c5d0c412e8ca00e0cae6846c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / denosaurs-0.2.2-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL denosaurs-0.2.2-cp310-cp310-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6fca676ad5686a7bed4f3e6d30f0fb0d1eb3dbec9f7018eeef40aec7eb33ea89
BLAKE2b-256 checksum
How to use checksums
ec32b88f81598e7d0a24c97c75f3e8164109085455919b03f47a7ab8d1a63575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Security for denosaurs 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 17 files in this release have been uploaded with provenance metadata.

Select from 17 files

Attestation for denosaurs-0.2.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.2 This release

17 release files Full provenance

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