Giter VIP home page Giter VIP logo

v8worker's Introduction

v8worker

Minimal golang binding to V8. This exposes a non-blocking message passing interface to the V8 javascript engine. Go and JavaScript interact by sending and receiving messages. V8 will block a thread (goroutine) only while it computes javascript - it has no "syscalls" other than sending and receiving messages to Go. There are only a few built in functions exposed to javascript: $print(string), $send(msg), $recv(callback), $sendSync(msg), and $recvSync(callback)

A slightly out of date presentation on this project

MIT License. Contributions welcome.

Build

You will need chrome's depot_tools to build. Follow the instructions here https://www.chromium.org/developers/how-tos/install-depot-tools

Run make to trigger a download and build of V8. make install will trigger go install. V8 is statically linked. It's only been tested on my OSX laptop and x64 linux. Should be portable with some difficulty to windows.

make test to build/run tests. Or just go test.

To build a debug version use target=x64.debug make

Docs

From golang checkout the API here: https://godoc.org/github.com/ry/v8worker

From Javascript you only have: $print(string) $send(msg) $recv(callback). $sendSync(msg). $recvSync(callback). See worker_test.go for example usage for now.

TODO

  • need ability to pass command line options to V8 when creating a worker (maybe before)
  • get text of exception

v8worker's People

Contributors

emicklei avatar gitter-badger avatar ivahaev avatar joaojeronimo avatar joewalnes avatar kib357 avatar ry avatar tav avatar vanbroup avatar yinhm avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.