Skip to main content

V8Py

Write Python APIs, then call them from JavaScript using the V8 engine.

>>> from v8py import Context
>>> context = Context()

>>> def print_hello():
...     print 'Hello, world!'
>>> context.expose(print_hello)
>>> context.eval('print_hello()')
Hello, world!

>>> class Greeter(object):
...     def greet(self, thing):
...         print 'Welcome, {}!'.format(thing)
>>> context.expose(Greeter)
>>> context.eval('g = new Greeter()')
>>> context.eval('g.greet("V8Py")')
Welcome, V8Py!

That kind of thing.

Almost everything you’d expect to work just works, including:

  • Functions

  • Classes (including old style classes, because I can)

  • Inheritance (from the last base class, other base classes are treated as mixins)

  • Data descriptors

  • Static methods and class methods

  • Exceptions (they even subclass from Error!)

  • Fully meme-compliant

Support

Linux, Mac is supported for both python2 and python3. Windows is also supported, but for python3 only.

Installation

$ pip install v8py

Heads up: it’ll be stuck at “Running setup.py install for v8py” for literally hours. It’s downloading and building V8, which is a really big program. If you want to contribute scripts for Travis CI to build and upload wheels for Mac/Linux, please do so.

Misc

There is no documentation of any of this yet. No docstrings. The best place to look to find out how to use it is the tests.

I’m writing this so I can create a really lightweight special-purpose webdriver (no visual rendering, no asynchronous XHRs), and I need some way of implementing the DOM in Python. So there will definitely be enough functionality for that.

If you’d like to use it for something else, by all means go ahead, but you may find something that doesn’t quite “just work”, or works kind of strangely, or just stuff I forgot to test. If you find anything, please submit an issue. Or, even better, send a pull request.

Last but not least, don’t forget to

https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg

Metadata

Release files for v8py 0.9.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for v8py 0.9.15
File Size Uploaded
v8py-0.9.15.tar.gz 45.7 kB Details

Release files / v8py-0.9.15.tar.gz

Download URL v8py-0.9.15.tar.gz
Size 45.7 kB
Tags Source
SHA-256 checksum
How to use checksums
bb1f601798c27ede694a24a2fb83af7b863adaa7dd684111bc22ff3075014b10
BLAKE2b-256 checksum
How to use checksums
49caa37d8be30f9dce8713e7c90a6a2582dd2b590f1f54d233a2d5965c4b3940
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.14

Release history Release notifications | RSS feed

This release

0.9.15 This release

1 release file

0.9.14

1 release file

0.9.13

1 release file

0.9.12

1 release file

0.9.11

1 release file

0.9.10

3 release files

0.9.9

3 release files

0.9.8

3 release files

0.9.7

2 release files

0.9.6

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page