Skip to main content

Minimal, modern embedded V8 for Python.

Project description

https://img.shields.io/pypi/v/py_mini_racer.svg

Minimal, modern embedded V8 for Python.

  • Free software: ISC license

https://github.com/sqreen/PyMiniRacer/raw/master/data/py_mini_racer.png

Features

  • Unicode support

  • Thread safe

  • Re-usable contexts

  • Binary object is Python agnostic

MiniRacer can be easily used by Django or Flask projects to minify assets, run babel or compile CoffeeScript.

Examples

py_mini_racer is straightforward to use:

>>> from py_mini_racer import py_mini_racer
>>> ctx = py_mini_racer.MiniRacer()
>>> ctx.eval('1+1')
2
>>> ctx.eval("var x = {company: 'Sqreen'}; x.company")
u'Sqreen'
>>> print ctx.eval(u"'\N{HEAVY BLACK HEART}'")

>>> ctx.eval("var fun = () => ({ foo: 1 });")
>>> ctx.call("fun")
{u'foo': 1}

Variables are kept inside of a context:

>>> ctx.eval("x.company")
u'Sqreen'
[1,2,3].map(n => n + 1);

Compatibility

PyMiniRacer is only compatible with Python 2.7 at the moment. Python 3 support is on its way.

Binary builds availability

The PyMiniRacer binary builds have been tested on x86_64 with:

  • OSX 10.11

  • Ubuntu >= 14.04

  • Debian >= 8

  • CentOS >= 7

You need pip >= 8.1 to install the wheels - you can check and upgrade yours in this way:

$ pip --version
$ pip install --upgrade pip

It should work on any Linux with a libc >= 2.17 and a wheel compatible pip (>= 8.1).

Installation

We built Python wheels (prebuilt binaries) for OSX 64 bits and Linux 64 bits - most recent distributions. You need pip >= 1.4 and setuptools >= 0.8.

$ pip install py-mini-racer

Build

You can build v8 with the command:

$ python setup.py build_v8

You can also build the ctype extension:

$ python setup.py build_ext

Which automatically builds v8.

You can generate a wheel with the command:

$ python setup.py bdist_wheel

which builds v8, the extension, and generates a wheel.

Tests

If you want to run the tests, you need to build V8 first, then launch:

$ python setup.py test --addopts tests

Credits

Built with love by Sqreen.

PyMiniRacer launch was described in this blog post.

PyMiniRacer is inspired by mini_racer, built for the Ruby world by Sam Saffron.

Tools used in rendering this package:

Todo

Lower libc version needed. Export V8 version. Fix circular structures export.

History

UNRELEASED

0.1.5 (2016-08-04)

  • Build py_mini_racer against a static Python. When built against a shared library python, it doesn’t work with a static Python.

0.1.4 (2016-08-04)

  • Ensure JSEvalException message is converted to unicode

0.1.3 (2016-08-04)

  • Fix extension loading for python3

  • Add a make target for building distributions (sdist + wheels)

  • Fix eval conversion for python 3

0.1.2 (2016-08-03)

  • Fix date support

  • Fix Dockerfile for generating python3 wheels

0.1.1 (2016-08-02)

  • Fix sdist distribution.

0.1.0 (2016-08-01)

  • First release on PyPI.

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

py_mini_racer-0.1.5.tar.gz (324.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

py_mini_racer-0.1.5-cp35-cp35m-manylinux1_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.5m

py_mini_racer-0.1.5-cp35-cp35m-macosx_10_11_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.5mmacOS 10.11+ x86-64

py_mini_racer-0.1.5-cp34-cp34m-manylinux1_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.4m

py_mini_racer-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl (4.9 MB view details)

Uploaded CPython 2.7mu

py_mini_racer-0.1.5-cp27-cp27m-macosx_10_11_x86_64.whl (3.9 MB view details)

Uploaded CPython 2.7mmacOS 10.11+ x86-64

File details

Details for the file py_mini_racer-0.1.5.tar.gz.

File metadata

  • Download URL: py_mini_racer-0.1.5.tar.gz
  • Upload date:
  • Size: 324.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for py_mini_racer-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b7e4b27b3341353d583485ac66336c1b09ddcc65d2a645477f9b7fe208813924
MD5 e487cc8e3e6ce9fc8898210381e6e782
BLAKE2b-256 05bcefa6c749877aa2eaab0cc57f6832f144849f3e8280e89bc1810d4a790daa

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.5-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.5-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 65d60f2b9db4b753ecc6a7e19f61f987d994ffbad3b4ae774b2c1664d6844402
MD5 81ff690e67765f697146cbb21c7cef1d
BLAKE2b-256 9fdee24dcc16b3c32959a97afd8c18354610966db6054882a4e024b09b236fe9

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.5-cp35-cp35m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.5-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 aace0f047ec0f1e2ef3b62883c4fdfbf554e7fd3a1102c19b896a80c094e3f6b
MD5 832ecc0ed8f32d53fd55ba1bb9255736
BLAKE2b-256 629f6246bf3f304e681ea916f839d2fa3c8256648b5c2e5c85928a76f9fbc9d0

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.5-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.5-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 eba4e80ec0629e7161a5a6bc88579e39196ad650db3444e1c6c4b86c868acc91
MD5 87be5d211b66398bc61f4070356bd8c8
BLAKE2b-256 72936bb0d45f0066546e8036ce8cced70560d2c2259b7017b7553c07039f5478

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 807d5024429b266ff9b36575041985f316bf2b9d2f8364e00e840e81daa94522
MD5 24a53a2eb6b4a0d59315d5fd240e14c8
BLAKE2b-256 13a8c8c4f3e1df3bcc95d7ca195f10be9966c9646500a0a3d9be68fb3ffc2d97

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.5-cp27-cp27m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.5-cp27-cp27m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 7a4f8c2b15063880a8ff5c4b9e1db5aa01c53769346224c3b0622343398d926d
MD5 a25fe1e89091e6172c2917ff58fcefa1
BLAKE2b-256 dd856007958e337c3aee0dd26b5a51eda25cb39fa44e0879e3683476b3f62c73

See more details on using hashes here.

Supported by

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