Skip to main content

Run JavaScript engine V8 in Python

Project description

PyPI version Gem Version GoDoc

Multi-language bindings to JavaScript engine V8.

Currently v8eval provides Go, Python and Ruby bindings to the latest V8 7.1 and supports Linux and Mac OS X. v8eval uses SWIG and can be extended easily for other languages.

Pre-installation

Linux

See Dockerfile.

Mac

See .travis.yml.

Installation

The installation takes several tens of minutes due to V8 build.

Go

v8eval requires Go 1.10 or later.

git clone https://github.com/sony/v8eval.git ${GOPATH}/src/github.com/sony/v8eval
${GOPATH}/src/github.com/sony/v8eval/go/build.sh install

In the case of Linux, you need to build your Go program with build.sh:

${GOPATH}/src/github.com/sony/v8eval/go/build.sh go build

Python

pip install v8eval

Ruby

gem install v8eval

Documentation

Go

See godoc.org.

Python

You can create the Sphinx documentation under python/docs.

python/build.sh docs

Ruby

You can create the YARD documentation under ruby/doc.

ruby/build.sh docs

Examples

Go

import "github.com/sony/v8eval/go/v8eval"

func Add(x, y int) int {
    var v8 = v8eval.NewV8()
    v8.Eval("var add = (x, y) => x + y;", nil)

    var sum int
    v8.Call("add", []int{x, y}, &sum)
    return sum
}

Python

import v8eval

def add(x, y):
    v8 = v8eval.V8()
    v8.eval('var add = (x, y) => x + y;')
    return v8.call('add', [x, y])

Ruby

require 'v8eval'

def add(x, y)
  v8 = V8Eval::V8.new
  v8.eval('var add = (x, y) => x + y;')
  v8.call('add', [x, y])
end

License

The MIT License (MIT)

See LICENSE for details.

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

v8eval-0.3.2.tar.gz (10.3 kB view details)

Uploaded Source

File details

Details for the file v8eval-0.3.2.tar.gz.

File metadata

  • Download URL: v8eval-0.3.2.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/2.7.18

File hashes

Hashes for v8eval-0.3.2.tar.gz
Algorithm Hash digest
SHA256 929da25fbfde600a689becd8e865c0969cef7224ff45c9d17b1a94348dc2bae3
MD5 fb6bfb227af2a10ef882cfef2d5e6fa6
BLAKE2b-256 fa4f1a05b40d4bb6862f9a0ba8eefe635676e2a3b48252053c3257aa22a531e7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page