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).

If you have a up-to-date pip and it doesn’t use a wheel, you might have an environment for which no wheel is built. Please open an issue.

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

0.1.6 (2016-08-12)

  • Add error message when py_mini_racer sdist fails to build asking to update pip in order to download the pre-compiled wheel instead of the source distribution.

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.6.tar.gz (324.9 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.6-cp35-cp35m-manylinux1_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.5m

py_mini_racer-0.1.6-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.6-cp34-cp34m-manylinux1_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.4m

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

Uploaded CPython 2.7mu

py_mini_racer-0.1.6-cp27-cp27m-manylinux1_x86_64.whl (4.9 MB view details)

Uploaded CPython 2.7m

py_mini_racer-0.1.6-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.6.tar.gz.

File metadata

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

File hashes

Hashes for py_mini_racer-0.1.6.tar.gz
Algorithm Hash digest
SHA256 8a6b85910d47505b50a007b4852666bb62aa9bda4d7bf71fe29c705591b82c76
MD5 9309509119048e252ce4488ff7d84c4c
BLAKE2b-256 4e84d6e6e45bb4a1ff7963648138dacb562ec284f224cb85b0da9a3798fc597b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c928b81b789cb5cfa93eb62c4c3892509c40ffc1fa0b9449427c2cf552462992
MD5 6dc4aaaf5a473ce21866b84632e46cfc
BLAKE2b-256 745fb00fa021ad40ef5b89c613768c0777a62ce8764f587274065a81945a068e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.6-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 4b3da8a4c60aa7fa7c6f510e5cc87db01efb2bb830e5c07bd30ae72dbf110ee6
MD5 ef4564d92d59a7aca22603204c8b537b
BLAKE2b-256 29a4a3de28af240049167ed74b4142eb11b641a3ecbce8bef2e78d4c90c0350c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 95284f711d2809b24a0c7492746a80ae8655739abd1b57b108fdcde5994659d5
MD5 db166ae75bd7452d1e7f64ae92e2fa7f
BLAKE2b-256 5cad184a13bb2923e57efbe6775eac5c801a834e6f65a59bbc8e6b5cccb40797

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.6-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4bf0efe67cffbcfad6861fd8da5c6df1014007d10d8ad1cd7c12190772a12f12
MD5 7031d26bffb8351b78abc36ab876c5d5
BLAKE2b-256 1c58545a88d01244ecbb0b5e800defab111645301d109ae6ccd214afddfc399e

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.6-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.6-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 67919e7e1dc57e68be34ca4cadac5eb0e1fb992c8d6c854eee5df10a7731647a
MD5 c4cef8f6f860003be23b45700f220300
BLAKE2b-256 b1aaf738dc91d6c379d6c2ee2a604562d35b46518c7711d6b9daa1ca377fe09f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.6-cp27-cp27m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 f9aeb66104280d55a94ee7249648d611bf4fa13585b7182aa20907b0d1995bea
MD5 96260d29b16a8f7c7bde78d299b71e96
BLAKE2b-256 4328dca26718b91a09089274ba8a882d77a576b215f9db4cb6cf9da85d31373a

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