{"id":13649268,"url":"https://github.com/plasma-umass/doppio","last_synced_at":"2025-06-10T21:18:08.353Z","repository":{"id":2462815,"uuid":"3434927","full_name":"plasma-umass/doppio","owner":"plasma-umass","description":"Breaks the browser language barrier (includes a plugin-free JVM).","archived":false,"fork":false,"pushed_at":"2022-12-06T23:14:10.000Z","size":77363,"stargazers_count":2179,"open_issues_count":55,"forks_count":177,"subscribers_count":74,"default_branch":"master","last_synced_at":"2025-06-01T00:47:32.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://plasma-umass.github.io/doppio-demo","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plasma-umass.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-02-13T22:44:30.000Z","updated_at":"2025-05-21T13:57:49.000Z","dependencies_parsed_at":"2022-08-06T12:15:28.197Z","dependency_job_id":null,"html_url":"https://github.com/plasma-umass/doppio","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plasma-umass%2Fdoppio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plasma-umass%2Fdoppio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plasma-umass%2Fdoppio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plasma-umass%2Fdoppio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plasma-umass","download_url":"https://codeload.github.com/plasma-umass/doppio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plasma-umass%2Fdoppio/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259152774,"owners_count":22813224,"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":[],"created_at":"2024-08-02T01:04:54.808Z","updated_at":"2025-06-10T21:18:08.325Z","avatar_url":"https://github.com/plasma-umass.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","virtual machines","others","JVM实现"],"sub_categories":[],"readme":"doppio: A JVM in TypeScript v0.5.0\n==================================\n\n[![Join the chat at https://gitter.im/plasma-umass/doppio](https://badges.gitter.im/plasma-umass/doppio.svg)](https://gitter.im/plasma-umass/doppio?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://travis-ci.org/plasma-umass/doppio.svg?branch=master)](https://travis-ci.org/plasma-umass/doppio)\n[![Build status](https://ci.appveyor.com/api/projects/status/tcwicbagl9xi3m6v?svg=true)](https://ci.appveyor.com/project/jvilk/doppio)\n[![npm version](https://badge.fury.io/js/doppiojvm.svg)](https://badge.fury.io/js/doppiojvm)\n[![david-dm-status-badge](https://david-dm.org/plasma-umass/doppio/master.svg)](https://david-dm.org/plasma-umass/doppio/master#info=dependencies\u0026view=table)\n[![david-dm-status-badge](https://david-dm.org/plasma-umass/doppio/master/dev-status.svg)](https://david-dm.org/plasma-umass/doppio/master#info=devDependencies\u0026view=table)\n\n_doppio_ is a double shot of espresso.\nIn this case, it's also a POSIX-compatible runtime system plus a JVM written in [TypeScript](http://www.typescriptlang.org/) and an active research project of the [PLASMA group at the University of Massachusetts](http://plasma.cs.umass.edu/).\n\nTo try doppio now, head to the [live demo page](http://plasma-umass.github.io/doppio-demo/).\n\nTo learn more, read some [documentation](docs), or read our [academic paper](http://dl.acm.org/citation.cfm?id=2594293) [(alt. link w/ no paywall)](https://plasma-umass.github.io/doppio-demo/paper.pdf) published at [PLDI 2014](http://conferences.inf.ed.ac.uk/pldi2014/)!\n\nYou can also get in touch via our [mailing list][mail] or via the IRC channel\n\\#plasma-umass on Freenode.\n\n[mail]: https://groups.google.com/forum/?fromgroups#!forum/plasma-umass-gsoc\n\nGetting \u0026 Building the Code\n---------------------------\n\nBefore attempting to build doppio, you must have the following installed:\n\n* Node v6.0 or higher\n  * There is a bug that prevents you from compiling DoppioJVM with Node v4 and below.\n* NPM package `grunt-cli` installed globally\n  * `npm install -g grunt-cli`\n* Java 8 JDK\n* (Recommended) Yarn\n\nIf you are on Windows, you will need the following installed:\n\n* Git (must be on your PATH)\n* Python (must be on your PATH)\n* A version of Visual Studio\n\nRun the following commands to build doppio. Note that your first time building may take some time, as the build script will download the entire Java Class Library.\n\n    git clone https://github.com/plasma-umass/doppio.git\n    cd doppio\n    yarn install       # npm install should work if you do not have yarn\n    grunt release      # For browser integration.\n    grunt release-cli  # For command-line use.\n\nTesting\n-------\n\nRun the full test suite using node.js:\n\n    grunt test\n\nRun the full test suite in a web browser:\n\n    grunt test-browser\n\nRun a specific test by invoking the test runner manually:\n\n    node build/dev-cli/console/test_runner.js classes/test/Strings\n\nCommand-line Usage\n------------------\n\nRun doppio with node.js (after `grunt release-cli`):\n\n    ./doppio classes.demo.Fib 7\n    ./doppio -jar my_application.jar\n    ./doppio -cp my/class/path SomeClass\n\nIntegrating Into Your Site\n--------------------------\n\nCheck out our [Developer Guide](docs) for information on how you can integrate doppio into your website!\n\nYou can also build and interact with a simple example application with:\n\n    grunt examples\n\nThe code is in [`docs/examples`](docs/examples).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplasma-umass%2Fdoppio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplasma-umass%2Fdoppio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplasma-umass%2Fdoppio/lists"}