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

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.4m

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

Uploaded CPython 2.7mu

py_mini_racer-0.1.5.dev0-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.dev0.tar.gz.

File metadata

File hashes

Hashes for py_mini_racer-0.1.5.dev0.tar.gz
Algorithm Hash digest
SHA256 72a7d34a5a7afbdf334c28277bb047e5c98a6f47e5811f7326e283bd6f8df269
MD5 c223b6e47cdc8024e7a0024e9ba5dac3
BLAKE2b-256 3de36200fbc8b8bed7e9ae9c1da9f214e28d7cb92898f90efa413882cdd5bc6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.5.dev0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 78c2756cdf7adfc7aaee63fcd7f5411ea1c122af37d2e4193e2b1e435c9c406c
MD5 054a0150cdfde02cc5e872b6ae466a76
BLAKE2b-256 a5a4f6fc9fea81a9a1a1fb9900dac2cd883959826d32ece19a73cf49203e33ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.5.dev0-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 51c4e10f826a587cdd1052542fa9f4682a62b396cf602de19162fbf51899325f
MD5 a1eb9ca9520d71c7c277a61371b30b2e
BLAKE2b-256 01e07c34ccce4058fe5d7635703a6ef5a603240813f59af8f8772fe3e43f1477

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.5.dev0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 dfaff959a2d594ae1a95b00ae0796389ad94a9fbce465ea579052321f1ef944b
MD5 39d1c650472633eb42c5549271df0852
BLAKE2b-256 f4fa411f36c726a8fb40688aa3c1821ed981db609209df4dbd4cbb822e31ee1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.5.dev0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1f92e2228371e0bc05b7dab71c5f4ac5cfb14f11303377c587567cf33b2c8364
MD5 24c33f89aa342e95c45bc1fb842448bb
BLAKE2b-256 b4f638a52d65e7d5e246450558a3237eef47cdb6000a36485934ffd016bb8b2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.5.dev0-cp27-cp27m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 b8ee7f0c31612e004222627dd47ea0e94e965a156f1e802592af160103f2aa09
MD5 5bbebf9c8ad5f2f0e7396df562e970ac
BLAKE2b-256 2d8cd58d3430204131c770861fbcde3a26397d71dfec9693b1596d699ed553e3

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