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'

PyMiniRacer is ES6 capable:

>>> ctx.eval("[1,2,3].includes(5)")
False

Compatibility

PyMiniRacer is compatible with Python 2 and Python 3. Wheels are generated for python 2.7 and python 3.4 to python 3.6.

Binary builds availability

The PyMiniRacer binary builds have been tested on x86_64 with:

  • OSX 10.10

  • Ubuntu >= 12.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.

Notes for building on OSX

The legacy Python binary builds (OSX 10.6) need to be downloaded from:

https://www.python.org/downloads/

They will allow to build a wheel compatible with former OSX versions.

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.9 (2017-03-24)

  • Fix the compilation for Ubuntu 12.04 and glibc < 2.17.

0.1.8 (2017-03-02)

  • Update targets build for better compatibility with old Mac OS X and linux platforms.

0.1.7 (2016-10-04)

  • Improve general performances of the JS execution.

  • Add the possibility to build a different version of V8 (for example with debug symbols).

  • Fix a conflict that could happens between statically linked libraries and dynamic ones.

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.9.tar.gz (325.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.9-cp36-cp36m-manylinux1_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.6m

py_mini_racer-0.1.9-cp36-cp36m-macosx_10_6_intel.whl (4.1 MB view details)

Uploaded CPython 3.6mmacOS 10.6+ Intel (x86-64, i386)

py_mini_racer-0.1.9-cp35-cp35m-manylinux1_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.5m

py_mini_racer-0.1.9-cp35-cp35m-macosx_10_6_intel.whl (4.1 MB view details)

Uploaded CPython 3.5mmacOS 10.6+ Intel (x86-64, i386)

py_mini_racer-0.1.9-cp34-cp34m-manylinux1_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.4m

py_mini_racer-0.1.9-cp34-cp34m-macosx_10_6_intel.whl (4.1 MB view details)

Uploaded CPython 3.4mmacOS 10.6+ Intel (x86-64, i386)

py_mini_racer-0.1.9-cp27-cp27mu-manylinux1_x86_64.whl (4.6 MB view details)

Uploaded CPython 2.7mu

py_mini_racer-0.1.9-cp27-cp27m-manylinux1_x86_64.whl (4.6 MB view details)

Uploaded CPython 2.7m

py_mini_racer-0.1.9-cp27-cp27m-macosx_10_6_intel.whl (4.1 MB view details)

Uploaded CPython 2.7mmacOS 10.6+ Intel (x86-64, i386)

File details

Details for the file py_mini_racer-0.1.9.tar.gz.

File metadata

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

File hashes

Hashes for py_mini_racer-0.1.9.tar.gz
Algorithm Hash digest
SHA256 c3b8202082a5ee77ff3d87b82cd19b4b2d9c484ed7ff884b5b136bf25389c575
MD5 5bde9929e130bf063a68ab4494ce3873
BLAKE2b-256 3ff94b70e5aabb03a6e37b55f3e8f3716ec5234627a575799954e1ff701fab58

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.9-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a59dc2aef2aed7346faed78133e52ad7b97d91950888bcafa75f7d4f7b7a585b
MD5 b70344b89513c1652980756044186efa
BLAKE2b-256 854307d73f946050ec7d8a043da17085558de8d0fa55a39f807d3f6ac56e99a1

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.9-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 4b345ab281be12dcc66da29aa7eaa21cf36cb9a3d9ac2be09cbf7a28a20719b2
MD5 c23bb7e557aaf410dabb8663f2b99035
BLAKE2b-256 02dc1298b45c4198eaa0c18aaf7bf5139ae8d9a3dada0cc190bce59113c413c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3adb344fcefa09b50a10da8a60015f0fe2880dc74088296eba0df5221b32b9bc
MD5 aefe87296473d49afc9c080690946299
BLAKE2b-256 aa542f96d8ab3e4a7bd53712f6f4a9b5dc8e66b180137101d106add9524f10c1

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.9-cp35-cp35m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 54ba5a7588358834e48c20c0c671ca20e1e03e05e23a5b72128ffc23dd0dbb80
MD5 fba5a7b3111d670a45af51634de69b22
BLAKE2b-256 a7e5b09ccfa6e13971b0c441a1d1d8ddfd53ee8e93d738ac49f6bd2309143ffd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 30879d9a6bb989ee1f507ad23e1399a33518a9edfc9fa46bcf04d212170a963b
MD5 c79fbf32686c05d7d947a5c9282e7eff
BLAKE2b-256 47e9676ac48d4c4a1c24e6091b9d9c7c24327a8eb6232815518c63d5413a543f

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.9-cp34-cp34m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp34-cp34m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 23aeee037b6ba8ffd171c2457122f9d823e872a876b921a28fc9253ed5278f0a
MD5 b928bac74b39e7a56c3156d9f3516675
BLAKE2b-256 4c93930a5db735b51fad5bebfb689d911496fe90082fef14fa14bee239c6c4a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2463f80c230d606b73504d81d734e15febb85a483b932dc796dbb5f397ece55a
MD5 b2b03ed459d2d85e27b5e6ff6985b61e
BLAKE2b-256 21183bab9d92944705d5715a75d5bc5eebaf728264fcd225d21dcdac087cecf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1552429e25ff3a3ec04bd40899661ea2557fa3393371564eb28a18e23b22aea6
MD5 df501a811bafb9616c3c22c54b2f3fd8
BLAKE2b-256 336550981d83ceca51a9019bc43709abb8e07721d9278fc1be9afde660431a60

See more details on using hashes here.

File details

Details for the file py_mini_racer-0.1.9-cp27-cp27m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for py_mini_racer-0.1.9-cp27-cp27m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 8f2dbf2e1cc4d67447b252da318860213fc4688890f230b66560f8f901b9a4d6
MD5 520648036a23bf3ad851f0a12960e60e
BLAKE2b-256 fb1e19dd2b61058d4b3daccdf9fe41ad3820d3cf58a2184e8e1454f0caef2d00

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