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.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.3.tar.gz (324.2 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.3-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.3-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.3.tar.gz.

File metadata

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

File hashes

Hashes for py_mini_racer-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0a5e8f09ddf5f4e5a7d4eb29a6eab16f77da397c01ba297c55040ab349b26bf2
MD5 49a1e6d10951fa37be7c715f7a33061b
BLAKE2b-256 a8c2d8d0b1fa46b441f44f8fccec094a14a4039c096972fe39ee4e73cc9210c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.3-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 5d7b74ba2d9f55b6db93b764230dd4856bc58001c04a1c6d1457675823331e8d
MD5 905c90ba409286ac7a252199c4ae5968
BLAKE2b-256 81164ddfbd89bfdc1af363a1da6398e35e6f474de6e76e15742fcc70b05cea7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.3-cp27-cp27m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 ceed6a3b89b6a4fa67fc0d5a15555badd81ed3e9f9ecfffcf9106bc1f38f650c
MD5 615c3835d83382f563d16e57b42d15c2
BLAKE2b-256 06692cc6e57c8f2d693c3a8a76fb362d8e97ca6d8cf46a459cb683b5f52aed44

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