Hacker News new | comments | show | ask | jobs | submit login
Show HN: Nice-looking Python bindings to V8 (github.com)
166 points by tbodt 122 days ago | hide | past | web | 37 comments | favorite

This allows for calling synchronous JS functions from Python but not async JS functions, right? PyExecJS [0] also doesn't work with async JS, but Js2Py [1] might.

[0] https://github.com/doloopwhile/PyExecJS/issues/20 [1] https://github.com/PiotrDabkowski/Js2Py/blob/05e77f0d4ffe91e...

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

The author says it works both ways [0] (e.g., this test [1]), but I don't see a test with Python calling async JS.

[0] https://news.ycombinator.com/item?id=14596163 [1] https://github.com/tbodt/v8py/blob/3c727584df684540ce30f2572...

Nice! I hadn't tested it yet, but I remember trying to run V8 in Python and it was a real mess - I think that even building it was problematic. I might use this project one day. Did you compare your bindings to alternatives?

If I get it correctly this is V8Py meaning it allows javascript (V8) to call Python scripts, not the other way around.

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

That's what I took that phrase to mean, but if you look at the example in the read me, it appears to be the other way around. Writing python, defining a method, then wrapping that method in a V8 context and running it from within python.

It's both!

No, because there really aren't any alternatives... There is PyV8, which last I checked does not compile on recent versions of V8

Can anybody tell what's going on with the v8py/kappa.{cpp,h} files?

"// Meme header file. Every project should have one of these. Kappa Kappa Kappa"

I'm a fan of humour in comments, easter-eggs, etc... but for no good reason, this bothers me.

It's forced humor, and a misapplied un-funny version of mildly funny nerd humor at that. It gives me the same kind of chills that I get from people who wear "I <3 bacon" type t-shirts.

In Spanish we have an expression for the way you feel: "vergüenza ajena", which loosely translates to "feeling the embarrassment someone else should feel for their actions." It's pretty nifty, if not very catchy :P

I like this. There's a lesser-known phrase in English with a similar meaning, "embarrassment transfer".

Or, "cringeworthy"

In Dutch we call this "plaatsvervangende schaamte".

Apparently it's "fremdscham" in German.

See, that's catchier! Now we are talking.

fremdschämen is the verb

In Finnish that is called "myötähäpeä"

I don't feel good about that feeling. Often when I say something makes me cringe, I later feel judgmental about it. Because I am being judgmental.

What kind of t-shirt would you have a positive response to?

> What kind of t-shirt would you have a positive response to?


Note that this thread ends in a predictable fashion: https://xkcd.com/214/

What's the meme though, honestly it doesn't look like anything but random cpp abuse to me

"Kappa" is from the game streaming site Twitch. Unless it means something else entirely and I'm out of the loop.

I also feel like Kappa is related to the Pepe / supremacist folks.

It comes from gaming circles, more specifically Twitch.

I might be missing something, but can you show an example of calling the API from javascript?

You seem to be writing it in python and then calling it from within python in the example.

context.eval runs JavaScript, which in the example is calling the Python API. expose adds an object into the global JavaScript space.

Silly question. Can I use this to interact with a machine learning model written in python from javascript on react native ? It'd be great if someone could point out the feasibility/limitations

No, it's for running javascript from a python program and allowing that javascript to call python code.

Wouldn't it be more performant and less awkward to compile python to JS? Or is it for importing JS code into your python program? Well, why don't compile JS to Python then?

If JS code expects to be JITed then transpiled in Python would be quite slow. Transpiling Python to JS is difficult and loses access to various ecosystems e.g. scientific Python.

Having the two runtimes coupled seems to be the ideal way to run both languages in the same process.

Interesting. Could this be used to use SciPy stuff from JavaScript?

there are a LOT of Sublime Text plugins that depend on this.

EDIT: nevermind. i'm dyslexic

are you thinking of pyv8?

damn, yep. good call.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact