{"id":22647535,"url":"https://github.com/igorlira/dirplayer-rs","last_synced_at":"2026-01-25T02:19:31.834Z","repository":{"id":234356816,"uuid":"788731853","full_name":"igorlira/dirplayer-rs","owner":"igorlira","description":"A web-compatible Shockwave Player emulator written in Rust","archived":false,"fork":false,"pushed_at":"2025-10-30T16:01:05.000Z","size":1779,"stargazers_count":79,"open_issues_count":17,"forks_count":10,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-10-31T08:48:40.763Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igorlira.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-19T01:14:19.000Z","updated_at":"2025-10-30T16:00:45.000Z","dependencies_parsed_at":"2024-05-09T04:29:57.129Z","dependency_job_id":"46d9ce68-6481-4199-ad35-b9a7276e38da","html_url":"https://github.com/igorlira/dirplayer-rs","commit_stats":null,"previous_names":["igorlira/dirplayer-rs"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/igorlira/dirplayer-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorlira%2Fdirplayer-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorlira%2Fdirplayer-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorlira%2Fdirplayer-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorlira%2Fdirplayer-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igorlira","download_url":"https://codeload.github.com/igorlira/dirplayer-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorlira%2Fdirplayer-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28418152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-12-09T07:33:45.152Z","updated_at":"2026-01-25T02:19:31.828Z","avatar_url":"https://github.com/igorlira.png","language":"Rust","funding_links":[],"categories":["Applications"],"sub_categories":["Emulators"],"readme":"![DirPlayer Logo](public/logo128.png)\n\n# DirPlayer\n\nDirPlayer is a Shockwave Player emulator written in Rust that aims to make playing old browser games possible on modern browsers.\n\n## Demo\n\nCheck out a live demo of this project at http://dirplayer-rs.s3-website-us-west-2.amazonaws.com/\n\n## Chrome Extension\n\nDownload the Chrome Extension at https://chromewebstore.google.com/detail/dirplayer-shockwave-emula/gpgalkgegfekkmaknocegonkakahkhbc\n\nThe extension implements a polyfill that replaces all `\u003cembed\u003e` elements that point to a Shockwave file in websites you visit.\n\n## Standalone App\n\nAlongside the emulator, DirPlayer comes with a standalone application that provides a complete debugging toolset for Lingo scripts and Shockwave files.\n\nPre-built binaries can be found at https://github.com/igorlira/dirplayer-rs/releases\n\n![./app-screenshot.png](./app-screenshot.png)\n\n## Polyfill\n\nDirPlayer can be embedded directly into any webpage as a standalone JavaScript polyfill. The polyfill is a single self-contained JS file that includes the WASM VM and all required assets.\n\n### Usage\n\nAutomatic initialization:\n\n```html\n\u003cscript src=\"dirplayer-polyfill.js\"\u003e\u003c/script\u003e\n```\n\nManual initialization:\n\n```html\n\u003cscript src=\"dirplayer-polyfill.js\" data-manual-init\u003e\u003c/script\u003e\n\u003cscript\u003e\n  DirPlayer.init();\n\u003c/script\u003e\n```\n\nThe polyfill automatically detects and replaces `\u003cembed\u003e` and `\u003cobject\u003e` elements that reference Shockwave `.dcr` files.\n\n## Requirements\n- NodeJS\n  - [(LTS or newer)](https://nodejs.org/)\n- RustLang\n  - [(1.70.0 or newer)](https://www.rust-lang.org/)\n- wasm-pack\n  - https://github.com/rustwasm/wasm-pack/releases\n\n## Building\n\u003e [!NOTE]  \n\u003e Before we can start, we need to load the missing modules for NodeJS with the `npm install` command.\n\n### 🪟 Windows\nWindows users can use our scripts which are located in the [`scripts`](https://github.com/igorlira/dirplayer-rs/tree/main/scripts) folder and end with `.bat`.\n- Build Rust VM with [`scripts/build-vm.bat`](https://github.com/igorlira/dirplayer-rs/blob/main/scripts/build-vm.bat)\n- Build extension with [`scripts/build-extension.bat`](https://github.com/igorlira/dirplayer-rs/blob/main/scripts/build-extension.bat)\n  - [Further information can be found here](https://github.com/igorlira/dirplayer-rs?tab=readme-ov-file#building-extension)\n- Run locally with [`scripts/run.bat`](https://github.com/igorlira/dirplayer-rs/blob/main/scripts/run.bat)\n\n### 🐧 Other platforms\n#### Building Rust VM\n\n```bash\nnpm run build-vm\n```\n\n#### Building extension\n\n```bash\nnpm run build-extension\n```\n\nMake sure to build the VM first. The bundled extension will be located in `./dist-extension`. \n\nYou can install the local build by going to `chrome://extensions`, enabling Developer Mode, then clicking the `Load unpacked` button.\n\nNote that the extension is currently only available on Chrome.\n\n#### Building standalone app\n\nMake sure to build the VM before building the standalone app. The build will be located in `./dist`.\n\n```bash\nnpm run electron-pack\n```\n\n#### Building polyfill\n\nAs above, ensure the VM is built before running this. The output will be a single file located at `./dist-polyfill/dirplayer-polyfill.js`.\n\n```bash\nnpm run build-polyfill\n```\n\n#### Running locally\n\n```bash\nnpm run start\n```\n\n#### Running standalone app locally\n\n```bash\nnpm run electron-dev\n```\n\n## Join our Discord!\n\nIf you have any questions or you're interested in being part of the discussions of this project, please join our Discord!\n\nhttps://discord.gg/8yKDk9nJH2\n\n## Acknowledgements\n\nThis project would have not been possible without the extensive work of the Shockwave reverse engineering community.\n\nA lot of code has been reproduced from the following projects:\n\nhttps://github.com/Earthquake-Project/Format-Documentation/\n\nhttps://github.com/Brian151/OpenShockwave/\n\nhttps://gist.github.com/MrBrax/1f3ae06c9320863f1d7b79b988c03e60\n\nhttps://www.scummvm.org/\n\nhttps://github.com/csnover/earthquake-rust/\n\nhttps://github.com/ProjectorRays/ProjectorRays\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorlira%2Fdirplayer-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorlira%2Fdirplayer-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorlira%2Fdirplayer-rs/lists"}