denosaurs
Modern JavaScript runtime in Python
Seamlessly run JavaScript next to Python with secure isolation, powered by V8 and bridged with Rust
denosaursis a fork ofimfing/jsrun(MIT licensed) maintained by BMSuisse, with a fix for safe cross-thread runtime termination (seePATCH.md). SeeLICENSEfor the original and current copyright notices.
Documentation (upstream — see note below) · Examples · Issues
denosaurs is a Python library that embeds the V8 JavaScript engine with Rust (PyO3). Run trusted or user-provided JavaScript alongside Python, bind Python objects into JavaScript in an isolated environment:
import denosaurs
result = denosaurs.eval("2 + 2")
print(result) # 4
# Bind Python function
denosaurs.bind_function("add", lambda a, b: a + b)
print(denosaurs.eval("add(2, 3)")) # 5
Highlights
- Fast V8 core – the JavaScript engine used by Chrome and Node.js, bridged via Rust and PyO3
- Async-first APIs – run async JavaScript without blocking Python code
- Extensible bindings – expose Python functions/objects to JavaScript
- Secure defaults – runtimes start with zero I/O, separate V8 isolates per thread, and configurable heap/time limits
- Module & WASM support – load ES modules with custom resolvers and execute WebAssembly directly
Get Started
To get started, install it from PyPI (Python 3.10+ and macOS/Linux are required):
pip install denosaurs # or uv pip install denosaurs
Note:
denosaursis experimental. Expect breaking changes between versions.
Quick Example
import denosaurs
# Simple expression
print(denosaurs.eval("Math.sqrt(25)")) # 5
# Share Python function with JavaScript
denosaurs.bind_function("add", lambda a, b: a + b)
print(denosaurs.eval("add(3, 4)")) # 7
Need full control? Use the Runtime class to configure heap/time limits, module loaders, and lifecycle management.
from denosaurs import Runtime, RuntimeConfig
config = RuntimeConfig(max_heap_size=10 * 1024 * 1024) # 10MB limit
with Runtime(config) as runtime:
print(runtime.eval("42")) # 42
Use Cases
denosaurs is designed for modern Python applications that need embedded JavaScript:
- AI agents – execute LLM-generated JavaScript in isolated sandboxes with memory/time limits
- Workflow runners – let users upload JavaScript automations backed by your Python host
- Serverless / plugin runtimes – spin up per-request V8 isolates with custom APIs
- Data playgrounds – build notebooks or playgrounds that mix Python data and JS visualizations
- JavaScript libraries – use JavaScript packages like marked.js directly in Python without Node.js
Example: Code execution sandbox for AI Agent
One of the most compelling use cases for denosaurs is building safe execution environments for AI agents. When LLMs generate code, you need a way to run it securely with strict resource limits and isolation.
This example shows how to create a Pydantic AI agent that can execute JavaScript code in a sandboxed V8 runtime with heap limits and timeouts:
import asyncio
from denosaurs import JavaScriptError, Runtime, RuntimeConfig
from pydantic_ai import Agent, RunContext
# Define the agent with code execution tool
agent = Agent(
"openai:gpt-5-mini",
system_prompt="""You are a helpful assistant that can execute JavaScript code.
When users ask you to perform calculations or data transformations,
you can write and execute JavaScript code to get accurate results.
Always explain what the code does before showing the result.""",
)
@agent.tool
async def execute_javascript(ctx: RunContext, code: str) -> str:
"""
Execute JavaScript code in a sandboxed environment.
Args:
code: The JavaScript code to execute
Returns:
The result of the code execution as a string
"""
# Log or audit the code being executed (for observability)
print(f"[Executing JavaScript code] '{code}'")
try:
# Create a runtime with 10MB heap limit
config = RuntimeConfig(max_heap_size=10 * 1024 * 1024)
with Runtime(config) as runtime:
result = await runtime.eval_async(code, timeout=5.0)
print(f"[Execution result] {result}")
return f"Result: {result}"
except TimeoutError:
return "Error: Code execution timed out (exceeded 5 seconds)"
except JavaScriptError as e:
return f"JavaScript Error: {e}"
except Exception as e:
return f"Execution Error: {e}"
async def main():
result = await agent.run("Calculate the sum of squares from 1 to 100")
print(f"AGENT OUTPUT: {result.output}")
if __name__ == "__main__":
asyncio.run(main())
Example: Using JavaScript libraries in Python
You can load supported JavaScript libraries directly from CDNs and use them in Python without Node.js:
import requests, denosaurs
response = requests.get("https://unpkg.com/lodash@4/lodash.min.js")
denosaurs.eval(response.text)
# Use lodash functions
result = denosaurs.eval("_.chunk(['a', 'b', 'c', 'd'], 2)")
print(result) # [['a', 'b'], ['c', 'd']]
# Bind Python data to JavaScript
denosaurs.bind_object("numbers", {"data": [1, 5, 10, 15, 20, 25]})
result = denosaurs.eval("_.filter(numbers.data, n => n >= 10)")
print(result) # [10, 15, 20, 25]
Explore more in Use Cases and Examples
Documentation
This fork doesn't host its own docs site; the API is unchanged from upstream, so these links work as-is:
- Quick Start
- Concepts: runtimes, type conversion, resource controls
- Guides: binding functions, module loading
- API reference
Metadata
Release files for denosaurs 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| denosaurs-0.1.0.tar.gz | 290.9 kB | With provenance | Details for denosaurs-0.1.0.tar.gz |
Built distributions (wheels)
Total release size: 327.2 MB
Release files / denosaurs-0.1.0.tar.gz
| Download URL | denosaurs-0.1.0.tar.gz |
|---|---|
| Size | 290.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
95d5c95d880e5c7d7326842e819056bf31edb70d7dfbe89110d2d8462e2940fc
|
|
BLAKE2b-256 checksum How to use checksums |
e0807347575b301384e587eb86bd9352cc7ce2b9427c7999efaebb35fc21d449
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
| Download URL | denosaurs-0.1.0-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 |
4ad9f542421573a888c94025bfe948a2c12f80152bb237c4b41651495013284b
|
|
BLAKE2b-256 checksum How to use checksums |
d9e67543081dacd6281ee6bffc817d0e665aec03a8359975e2fe77dc5dab2749
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | denosaurs-0.1.0-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 |
f839f45177d0a34f3888157528f1c1ea53316d72e18e034752793b362011b402
|
|
BLAKE2b-256 checksum How to use checksums |
a711aa8495e26d0707278f07235bb3ce4b3b234c692f86282c66aad8ad7cbe87
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp314-cp314-win_amd64.whl
| Download URL | denosaurs-0.1.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 18.9 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
16fed9e1fd81eef9ee8d4083915a52c9f2a9c9ad47160849bcbf76772f3852a2
|
|
BLAKE2b-256 checksum How to use checksums |
292f3ac0ee737020a6799486de7493e343a317e35c9c7aae6e338b3bc99b8714
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | denosaurs-0.1.0-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 |
11f7f7b20c5b8be56b3fc1c23e0782e2459d99b1b10bd73110e2ab50a6207575
|
|
BLAKE2b-256 checksum How to use checksums |
9a4c254724895e2bb8b8cfef9772c02af649f85bf7faf267c5f863594fb737bc
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | denosaurs-0.1.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 19.8 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
aaf8092bddb46b5fb5e7293a4e8d37a2144f5c2dae2bfd24c2d096d35504ca42
|
|
BLAKE2b-256 checksum How to use checksums |
e20f04d17018f33a59e29cc754db27be102ea64d7dd31c52fcb76ae863c4088e
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp313-cp313-win_amd64.whl
| Download URL | denosaurs-0.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 18.9 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f01b450425bd70b4e466154a50f9615f745044f246741f85f114cfb2a8f1891e
|
|
BLAKE2b-256 checksum How to use checksums |
ee4097d5555994169a5032924b6cac78be8b359960321f6496633289a82879f5
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | denosaurs-0.1.0-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 |
f24c671cb3e18e1766b42986c8f985f77ba5b69cd2c8242141c6ef5407d64bc9
|
|
BLAKE2b-256 checksum How to use checksums |
05c26925e4e50e99d9bb62d4c7f6e6e6505c0001c01280f8941969d0eda1cccc
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | denosaurs-0.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 19.8 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
63cfc91c0c75fc0e6653a0d5ea61a9fcf419f4a39ef4e6d102e5220fe65cd290
|
|
BLAKE2b-256 checksum How to use checksums |
4d2591437cc76932b60564e1f90f90e05181e246843ba0cb7e4b99b09cd38ec8
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | denosaurs-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 18.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1ab24475f9f7fdc42181228af3a9b890010c93ac22c5b577ae4083f023d93d89
|
|
BLAKE2b-256 checksum How to use checksums |
b6bd10d606fa7daca187feda2e397baf337d290a2b0061d5a8053db11f102782
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | denosaurs-0.1.0-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 |
5723f044769ccfb839c61c553f8c75ef330e5617b3c9f872c194813ae491a999
|
|
BLAKE2b-256 checksum How to use checksums |
4e70ab71a3eb0657a141e0633680a320714dba3a529c08e036716f39bedfee94
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | denosaurs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 19.8 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1158230c5f26561e32ebef2aa3c58efa9b379d43f29f2ae9c05a3629d77980d4
|
|
BLAKE2b-256 checksum How to use checksums |
c808aa463d27055ece43af3d6e0208f12e6b09c475857050b17446ffb82cbb04
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp311-cp311-win_amd64.whl
| Download URL | denosaurs-0.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 18.9 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ef46abf1a110988a66e84a158e4258853959028dd4c2392533267ec7d017e795
|
|
BLAKE2b-256 checksum How to use checksums |
dab65e80789ccd51d676455c97768f1c41d3d8e10d842b0e8064c2a643916d2f
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | denosaurs-0.1.0-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 |
9e33e7baaaa41a2413c5a28d21ee0ad4d3f81bcd4695ef12e69d30c9942be271
|
|
BLAKE2b-256 checksum How to use checksums |
c7501e2b0c82a03a1f9b0f2e91a89634d197881bc9afe644f9332e30e4249e24
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | denosaurs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 19.8 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4d851e661ef17b2f08fab08953328336d23b006e76d8cb132465cc8cce30ba87
|
|
BLAKE2b-256 checksum How to use checksums |
40808dcec24191047853b85844cf7be8f2acd1a1aea44e1c8817bb3c48f297c4
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp310-cp310-win_amd64.whl
| Download URL | denosaurs-0.1.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 18.9 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a82c98b08f8f557d9aa345f4159a8f6813d2d1b75297346f4af2c03fa2edae12
|
|
BLAKE2b-256 checksum How to use checksums |
7b1b51029b1d75810016730a1c37482909c41f70deee8839fa52db2a7716d3a2
|
| 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 20, 2026.
Transparency logRelease files / denosaurs-0.1.0-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | denosaurs-0.1.0-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 |
144606e53203a0f7d794ef8e1b397d60fdfc76a9f1975bb32778aea55f69f320
|
|
BLAKE2b-256 checksum How to use checksums |
a9703bcb5b4ad1c24fae0fc0310c1a3717c3bdd69cd9d03bbb30e837500e5b17
|
| 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 20, 2026.
Transparency logSecurity for denosaurs 0.1.0
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.
Attestation for denosaurs-0.1.0.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 20, 2026.
Transparency logA 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.