Awesome
V8-CFFI
Embed the V8 Javascript engine into Python.
Note: The initial purpose of this library is to render React components server side.
Compatibility
- GCC +4.8
- G++ +4.8
- Python 2.7, 3.4, 3.5 and PyPy 5.3
Note: Linux-x64 is the only (officially) supported platform. To build the binaries for other platforms, the
./dev
steps must be adapted (probably to vagrant instead of docker) accordingly. PRs are welcome.
Usage
from v8cffi import shortcuts
shortcuts.set_up()
ctx = shortcuts.get_context()
ctx.load_libs(['./foo_bundled.js'])
ctx.run_script('foo.render("hola mundo");')
# "hola mundo"
Read the docs.
Notes
- Currently ships with V8 4.9.385.33 (stable).
- This repo contains V8 static files for Linux-x64, built with CentOS 6.7 (glibc 2.12), it's known to work in Ubuntu 12.04/14.04/16.04.
Resources
- How does NodeJS works?
- Beautiful Native Libraries or alt
- V8 Custom Snapshots
- V8 Cache Code
- Latest stable V8
- V8 Wiki
- V8 Embedder's Guide
- V8 users group
- CFFI user group
- CFFI - Distribute including a (pre-)compiled library
Devs
Benchmarks
This will run some silly benchmarks. It runs about ~110k ops/s on a 1.8GHz CPU.
$ make benchmarks
License
MIT