Skip to main content

Wraps starlark-rust into Python

Project description

Github Build Status Python Package Index Release Page

This package provides a sandboxed/restricted Python-like environment by exposing the starlark-rust interpreter for the Starlark Python-like language to Python via PyO3.

Starlark claims the following design principles:

  • Deterministic evaluation. Executing the same code twice will give the same results.

  • Hermetic execution. Execution cannot access the file system, network, system clock. It is safe to execute untrusted code.

  • Parallel evaluation. Modules can be loaded in parallel. To guarantee a thread-safe execution, shared data becomes immutable.

  • Simplicity. We try to limit the number of concepts needed to understand the code. Users should be able to quickly read and write code, even if they are not expert. The language should avoid pitfalls as much as possible.

  • Focus on tooling. We recognize that the source code will be read, analyzed, modified, by both humans and tools.

  • Python-like. Python is a widely used language. Keeping the language similar to Python can reduce the learning curve and make the semantics more obvious to users.

Status: This is reasonably complete and usable.

Installation

To install, say:

pip install starlark-pyo3

Binary wheels are available for all major platforms. The module is importable as starlark.

Installation for Development

To use this, make sure you have nightly rust available:

curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs \| sh rustup
default nightly

Then, to install into the current Python virtual environment:

pip install maturin
maturin develop

Project details


Download files

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

Source Distribution

starlark_pyo3-2024.1.3.tar.gz (27.1 kB view hashes)

Uploaded Source

Built Distributions

starlark_pyo3-2024.1.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view hashes)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

starlark_pyo3-2024.1.3-cp312-none-win_amd64.whl (2.4 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

starlark_pyo3-2024.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

starlark_pyo3-2024.1.3-cp312-cp312-macosx_10_12_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

starlark_pyo3-2024.1.3-cp311-none-win_amd64.whl (2.4 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

starlark_pyo3-2024.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

starlark_pyo3-2024.1.3-cp311-cp311-macosx_10_12_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

starlark_pyo3-2024.1.3-cp310-none-win_amd64.whl (2.4 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

starlark_pyo3-2024.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

starlark_pyo3-2024.1.3-cp310-cp310-macosx_10_12_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.10 macOS 10.12+ x86-64

starlark_pyo3-2024.1.3-cp39-none-win_amd64.whl (2.4 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

starlark_pyo3-2024.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

starlark_pyo3-2024.1.3-cp39-cp39-macosx_10_12_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.9 macOS 10.12+ x86-64

starlark_pyo3-2024.1.3-cp38-none-win_amd64.whl (2.4 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

starlark_pyo3-2024.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

starlark_pyo3-2024.1.3-cp38-cp38-macosx_10_12_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.8 macOS 10.12+ x86-64

starlark_pyo3-2024.1.3-cp37-none-win_amd64.whl (2.4 MB view hashes)

Uploaded CPython 3.7 Windows x86-64

starlark_pyo3-2024.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

starlark_pyo3-2024.1.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARMv7l

starlark_pyo3-2024.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

starlark_pyo3-2024.1.3-cp37-cp37m-macosx_10_12_x86_64.whl (2.8 MB view hashes)

Uploaded CPython 3.7m macOS 10.12+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page