Minimal, modern embedded V8 for Python.
Project description
Minimal, modern embedded V8 for Python.
Free software: ISC license
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for py_mini_racer-0.1.5-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65d60f2b9db4b753ecc6a7e19f61f987d994ffbad3b4ae774b2c1664d6844402 |
|
MD5 | 81ff690e67765f697146cbb21c7cef1d |
|
BLAKE2b-256 | 9fdee24dcc16b3c32959a97afd8c18354610966db6054882a4e024b09b236fe9 |
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 |
Hashes for py_mini_racer-0.1.5-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eba4e80ec0629e7161a5a6bc88579e39196ad650db3444e1c6c4b86c868acc91 |
|
MD5 | 87be5d211b66398bc61f4070356bd8c8 |
|
BLAKE2b-256 | 72936bb0d45f0066546e8036ce8cced70560d2c2259b7017b7553c07039f5478 |
Hashes for py_mini_racer-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 807d5024429b266ff9b36575041985f316bf2b9d2f8364e00e840e81daa94522 |
|
MD5 | 24a53a2eb6b4a0d59315d5fd240e14c8 |
|
BLAKE2b-256 | 13a8c8c4f3e1df3bcc95d7ca195f10be9966c9646500a0a3d9be68fb3ffc2d97 |
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 |