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

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.2.tar.gz (323.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.2-cp27-cp27mu-manylinux1_x86_64.whl (5.0 MB view details)

Uploaded CPython 2.7mu

py_mini_racer-0.1.2-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.2.tar.gz.

File metadata

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

File hashes

Hashes for py_mini_racer-0.1.2.tar.gz
Algorithm Hash digest
SHA256 03e664fc22308e524f9fed2ddbbde7ef493a8defce4e4e617761326581e02693
MD5 ec49e33c565b59419887ec86e3ecc3e6
BLAKE2b-256 6f49805872ddc70d50e3a316cdf577db408395c8f495263c7f1d9a02160d7d20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 67b0d3fdb830f6144ac61482a2927a7b6ac8755f86ebe4d8aa1f803a4b1fce84
MD5 8ce58a06dc720232e346b10bb4b5dcff
BLAKE2b-256 d8884900cee0f7c141abaf4bea90ff462c48f487093db12742fc7e7d56bfa911

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.2-cp27-cp27m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 56f0dcee10ecbeac78cd0fd81238bd5e4bdefe8ec6cbfbb85535bc99f93326f9
MD5 18e0e2df43244f32318922238e07c0d9
BLAKE2b-256 ea7b289a07897c14f4ca41c8187760cf5221ac76fd0e628ff704bc3204ca2f83

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