{"id":13699746,"url":"https://github.com/tbodt/v8py","last_synced_at":"2025-04-12T18:43:27.992Z","repository":{"id":54580528,"uuid":"71302560","full_name":"tbodt/v8py","owner":"tbodt","description":"Write Python APIs, then call them from JavaScript using the V8 engine.","archived":false,"fork":false,"pushed_at":"2024-01-18T19:56:27.000Z","size":260,"stargazers_count":448,"open_issues_count":11,"forks_count":29,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-03T20:12:32.376Z","etag":null,"topics":["javascript","python","v8"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tbodt.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"COPYING.LESSER","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-19T00:16:55.000Z","updated_at":"2025-03-10T03:56:48.000Z","dependencies_parsed_at":"2024-10-29T21:39:37.266Z","dependency_job_id":null,"html_url":"https://github.com/tbodt/v8py","commit_stats":{"total_commits":282,"total_committers":11,"mean_commits":"25.636363636363637","dds":"0.18439716312056742","last_synced_commit":"4fe3eea9ac637e8dba365f215498a2f8fafd0c45"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbodt%2Fv8py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbodt%2Fv8py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbodt%2Fv8py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbodt%2Fv8py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tbodt","download_url":"https://codeload.github.com/tbodt/v8py/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248617130,"owners_count":21134190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","python","v8"],"created_at":"2024-08-02T20:00:42.796Z","updated_at":"2025-04-12T18:43:27.950Z","avatar_url":"https://github.com/tbodt.png","language":"C++","readme":"Looking for maintainers!\n====\n\nI (tbodt) no longer use this or have the time to maintain it. If you are using this seriously or would like to, and have resources for development and maintenance, reach out.\n\nV8Py\n====\n\nWrite Python APIs, then call them from JavaScript using the V8 engine.\n\n.. code-block:: python\n\n    \u003e\u003e\u003e from v8py import Context\n    \u003e\u003e\u003e context = Context()\n\n    \u003e\u003e\u003e def print_hello():\n    ...     print 'Hello, world!'\n    \u003e\u003e\u003e context.expose(print_hello)\n    \u003e\u003e\u003e context.eval('print_hello()')\n    Hello, world!\n\n    \u003e\u003e\u003e class Greeter(object):\n    ...     def greet(self, thing):\n    ...         print 'Welcome, {}!'.format(thing)\n    \u003e\u003e\u003e context.expose(Greeter)\n    \u003e\u003e\u003e context.eval('g = new Greeter()')\n    \u003e\u003e\u003e context.eval('g.greet(\"V8Py\")')\n    Welcome, V8Py!\n\nThat kind of thing.\n\nAlmost everything you'd expect to work just works, including:\n\n* Functions\n* Classes (including old style classes, because I can)\n* Inheritance (from the last base class, other base classes are treated as mixins)\n* Data descriptors\n* Static methods and class methods\n* Exceptions (they even subclass from Error!)\n* `Fully meme-compliant \u003chttps://github.com/tbodt/v8py/blob/master/v8py/kappa.h\u003e`_\n\nSupport\n-------\n\nLinux, Mac is supported for both python2 and python3.\nWindows is also supported, but for python3 only.\n\nInstallation\n------------\n\n.. code-block:: bash\n\n    $ pip install v8py\n\nHeads up: it'll be stuck at \"Running setup.py install for v8py\" for literally\nhours. It's downloading and building V8, which is a really big program. If you\nwant to contribute scripts for Travis CI to build and upload wheels for\nMac/Linux, please do so.\n\nMisc\n----\n\nThere is no documentation of any of this yet. No docstrings. The best place to\nlook to find out how to use it is the tests.\n\nI'm writing this so I can create a really lightweight special-purpose webdriver\n(no visual rendering, no asynchronous XHRs), and I need some way of\nimplementing the DOM in Python. So there will definitely be enough\nfunctionality for that. \n\nIf you'd like to use it for something else, by all means go ahead, but you may\nfind something that doesn't quite \"just work\", or works kind of strangely, or\njust stuff I forgot to test. If you find anything, please submit an issue. Or,\neven better, send a pull request.\n\nLast but not least, don't forget to\n\n.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg \n   :target: https://saythanks.io/to/tbodt\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbodt%2Fv8py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftbodt%2Fv8py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbodt%2Fv8py/lists"}