starlark-pyo3
Wraps starlark-rust into Python
Decision gist · record as of 2026-08-14
Yes, if you need sandboxed, deterministic code execution with a Python-like syntax. The package is actively maintained, has no known vulnerabilities, and offers prebuilt wheels for easy installation. However, verify the license terms first—the package metadata does not declare an explicit license, which could be a blocker for commercial or restricted-license projects. Start with the documentation and a small proof-of-concept to confirm the API and performance meet your use case.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Development builds require nightly Rust and maturin.
- Medium install friction due to compiled wheels, but prebuilt binaries are available for all major platforms and Python versions (3.9+).
License · maintenance · safety
(unclear) — License treatment is unclear—no SPDX identifier or raw license text is declared in package metadata. Verify the actual license terms in the repository before use in proprietary or restricted-license contexts.
last release 2026-05-18 (88 days) · last repo commit 2026-08-10 · 44 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 356,691 downloads/mo, #7,280 on PyPI
Alternatives
Verify before relying
pip install starlark-pyo3
import starlark
# Create and evaluate Starlark code in a sandboxed environment
result = starlark.eval("x = 1 + 2\nprint(x)")- Exact API surface and available built-in functions in the sandboxed environment
- Performance characteristics and execution limits for large or complex Starlark programs
- Compatibility guarantees between starlark-pyo3 versions and the underlying starlark-rust library
What it is and what it does
Starlark-pyo3 wraps the starlark-rust interpreter, bringing Starlark—a Python-like language designed for safe, deterministic execution—into Python. Starlark is built around hermetic execution (no filesystem, network, or clock access), deterministic evaluation (same code always produces the same result), and parallel-safe immutable data. This makes it suitable for running untrusted code safely, configuration languages, and build system scripting.
The package provides Python bindings via PyO3, so you can instantiate a Starlark interpreter from Python and evaluate Starlark code within a sandboxed context. It ships with prebuilt wheels for Linux (x86_64, aarch64, armv7l), Windows, and macOS, making installation straightforward. The single runtime dependency is typing-extensions, keeping the footprint minimal.
Use it for
- Execute untrusted user scripts or plugins safely without filesystem or network access
- Implement a configuration or domain-specific language (DSL) that is Python-like but deterministic and sandboxed
- Build system or task automation where reproducibility and parallel evaluation are required
- Evaluate expressions or code snippets from external sources with guaranteed hermetic isolation
- Prototyping or embedding a restricted scripting layer in a larger Python application
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need sandboxed, deterministic code execution with a Python-like syntax.
The package is actively maintained, has no known vulnerabilities, and offers prebuilt wheels for easy installation. However, verify the license terms first—the package metadata does not declare an explicit license, which could be a blocker for commercial or restricted-license projects. Start with the documentation and a small proof-of-concept to confirm the API and performance meet your use case.
Install
starlark-pyo3 on PyPI
Before you install
Medium install friction due to compiled wheels, but prebuilt binaries are available for all major platforms and Python versions (3.9+). Repository is active with recent commits and no known vulnerabilities.
Requires Python 3.9 or later. Development builds require nightly Rust and maturin.
License in practice
License treatment is unclear—no SPDX identifier or raw license text is declared in package metadata. Verify the actual license terms in the repository before use in proprietary or restricted-license contexts.
Quickstart
pip install starlark-pyo3
import starlark
# Create and evaluate Starlark code in a sandboxed environment
result = starlark.eval("x = 1 + 2\nprint(x)")
Verify before relying
- Exact API surface and available built-in functions in the sandboxed environment
- Performance characteristics and execution limits for large or complex Starlark programs
- Compatibility guarantees between starlark-pyo3 versions and the underlying starlark-rust library
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagetyping-extensions |
| Maintenance | Actively maintained 88 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 356,691 / month, #7,280 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: Rust |
Evidence: starlark_pyo3-2026.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; starlark_pyo3-2026.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; starlark_pyo3-2026.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; starlark_pyo3-2026.1-cp310-cp310-win_amd64.whl; starlark_pyo3-2026.1-cp311-cp311-macosx_11_0_arm64.whl; starlark_pyo3-2026.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; starlark_pyo3-2026.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; starlark_pyo3-2026.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; starlark_pyo3-2026.1-cp311-cp311-win_amd64.whl; starlark_pyo3-2026.1-cp312-cp312-macosx_11_0_arm64.whl; starlark_pyo3-2026.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; starlark_pyo3-2026.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; starlark_pyo3-2026.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; starlark_pyo3-2026.1-cp312-cp312-win_amd64.whl; starlark_pyo3-2026.1-cp313-cp313-macosx_11_0_arm64.whl; starlark_pyo3-2026.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; starlark_pyo3-2026.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; starlark_pyo3-2026.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; starlark_pyo3-2026.1-cp313-cp313-win_amd64.whl; starlark_pyo3-2026.1-cp314-cp314-macosx_11_0_arm64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “starlark interpreter python”
- starlark-pyo3Exposes the Starlark interpreter (a Python-like language) to Python…
- cppyy-clingProvides Cling, an LLVM-based interactive C++ interpreter, packaged…
- bfiA pure-Python interpreter for Brainfuck that compiles source code…
Give your agent the search over MCP, or paste the wish link into any chat.
More Security packages
Provides Python bindings to the FreeDesktop.org Secret Service API for securely storing and retrieving passwords and secrets through GNOME Keyring, KWallet, or KeePassXC.
MSAL for Python handles OAuth2 and OpenID Connect authentication with Microsoft identity services, managing token acquisition, caching, and refresh for applications integrating with Microsoft Entra ID, Microsoft Accounts, and Azure AD B2C.
joserfc implements JOSE standards (JWS, JWE, JWK, JWT, and related RFCs) for signing, encrypting, and managing JSON-based cryptographic tokens in Python.
Authlib provides a complete implementation of OAuth 1.0, OAuth 2.0, and OpenID Connect 1.0 for building both authentication clients and servers, with built-in support for JWS, JWK, JWA, and JWT standards.
Provides low-level CFFI bindings to the official Argon2 password hashing algorithm for use by libraries and applications that need direct access to Argon2 without higher-level abstractions.
ADAL for Python authenticates applications with Azure Active Directory to obtain tokens for accessing Azure AD-protected resources.
Install only if maintaining existing code that already depends on it, and plan a migration.
See also bashkit · pydantic-monty · RestrictedPython · e2b · asteval · pydantic-monty-runtime · maturin · moviepilot-rust · setuptools-rust · nono-py