{"id":20763493,"url":"https://github.com/openfl/openfl-js","last_synced_at":"2026-02-17T19:11:35.960Z","repository":{"id":58973198,"uuid":"320401566","full_name":"openfl/openfl-js","owner":"openfl","description":"Wrapper to support OpenFL HTML5 development using TypeScript, Haxe, JavaScript or ActionScript 3.0","archived":false,"fork":false,"pushed_at":"2026-01-12T18:56:04.000Z","size":1731,"stargazers_count":24,"open_issues_count":3,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-13T00:18:21.930Z","etag":null,"topics":["openfl","openfl-npm"],"latest_commit_sha":null,"homepage":"https://www.openfl.org/learn/npm/getting-started/","language":"Haxe","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/openfl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"github":["jgranick"],"patreon":"openfl","open_collective":"openfl","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-12-10T22:07:28.000Z","updated_at":"2026-01-12T18:56:08.000Z","dependencies_parsed_at":"2023-09-30T02:35:42.396Z","dependency_job_id":"33b1317d-7a54-49d6-9330-f47806e9f591","html_url":"https://github.com/openfl/openfl-js","commit_stats":{"total_commits":59,"total_committers":3,"mean_commits":"19.666666666666668","dds":"0.30508474576271183","last_synced_commit":"4af111e6133b332719a55d16f0567c001c424a05"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/openfl/openfl-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfl%2Fopenfl-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfl%2Fopenfl-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfl%2Fopenfl-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfl%2Fopenfl-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfl","download_url":"https://codeload.github.com/openfl/openfl-js/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfl%2Fopenfl-js/sbom","scorecard":{"id":709409,"data":{"date":"2025-08-11","repo":{"name":"github.com/openfl/openfl-js","commit":"ee92afa02fca697dcbf4494389330f7ae322e652"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.3,"checks":[{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 9.4.1 not signed: https://api.github.com/repos/openfl/openfl-js/releases/191754677","Warn: release artifact 9.4.0 not signed: https://api.github.com/repos/openfl/openfl-js/releases/181112483","Warn: release artifact 9.3.4 not signed: https://api.github.com/repos/openfl/openfl-js/releases/166586376","Warn: release artifact 9.3.3 not signed: https://api.github.com/repos/openfl/openfl-js/releases/154478148","Warn: release artifact 9.3.2 not signed: https://api.github.com/repos/openfl/openfl-js/releases/128614030","Warn: release artifact 9.4.1 does not have provenance: https://api.github.com/repos/openfl/openfl-js/releases/191754677","Warn: release artifact 9.4.0 does not have provenance: https://api.github.com/repos/openfl/openfl-js/releases/181112483","Warn: release artifact 9.3.4 does not have provenance: https://api.github.com/repos/openfl/openfl-js/releases/166586376","Warn: release artifact 9.3.3 does not have provenance: https://api.github.com/repos/openfl/openfl-js/releases/154478148","Warn: release artifact 9.3.2 does not have provenance: https://api.github.com/repos/openfl/openfl-js/releases/128614030"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/openfl/openfl-js/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/openfl/openfl-js/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/openfl/openfl-js/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/openfl/openfl-js/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/openfl/openfl-js/main.yml/master?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/main.yml:21","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":0,"reason":"11 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-7wwv-vh3v-89cq","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-xf5p-87ch-gxw2","Warn: Project is vulnerable to: GHSA-5v2h-r2cx-5xgj","Warn: Project is vulnerable to: GHSA-rrrm-qjm4-v8hf","Warn: Project is vulnerable to: GHSA-7wpw-2hjm-89gp","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T07:42:12.426Z","repository_id":58973198,"created_at":"2025-08-22T07:42:12.426Z","updated_at":"2025-08-22T07:42:12.426Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29554531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T18:16:07.221Z","status":"ssl_error","status_checked_at":"2026-02-17T18:16:04.782Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["openfl","openfl-npm"],"created_at":"2024-11-17T10:44:23.735Z","updated_at":"2026-02-17T19:11:30.951Z","avatar_url":"https://github.com/openfl.png","language":"Haxe","funding_links":["https://github.com/sponsors/jgranick","https://patreon.com/openfl","https://opencollective.com/openfl"],"categories":[],"sub_categories":[],"readme":"[![MIT License](https://img.shields.io/github/license/openfl/openfl.svg?style=flat)](LICENSE.md) [![npm Version](https://img.shields.io/npm/v/openfl.svg?style=flat)](http://npmjs.com/package/openfl) [![CDNJS version](https://img.shields.io/cdnjs/v/openfl.svg?style=flat)](https://cdnjs.com/libraries/openfl) [![Haxelib Version](https://img.shields.io/github/tag/openfl/openfl.svg?style=flat\u0026label=haxelib)](http://lib.haxe.org/p/openfl) [![Build Status](https://img.shields.io/github/actions/workflow/status/openfl/openfl-js/main.yml?branch=develop)](https://github.com/openfl/openfl-js/actions) [![Discord Server](https://img.shields.io/discord/415681294446493696.svg?logo=discord)](https://discordapp.com/invite/tDgq8EE)\n\n\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"assets/openfl.png\"/\u003e\u003c/p\u003e\n\n\nPurpose\n=======\n\nInteractive application and game developers need access to productive tools for forging bitmap, vector, text, sound and video together. The modern-day web browser provides many of these features, but performance for animated content, and support for hardware graphics (while still supporting software caching and fallback) is not readily available. OpenFL combines a proven set of tools for development of games and rich interactive content, going back to the first renaissance innovators on the web.\n\n\nTwo Versions\n============\n\nThere are two versions of OpenFL, the first is primarily distributed using haxelib, and blends native support for Windows, macOS, Linux, iOS, Android, Flash, HTML5 and WebAssembly. You can read more about the haxelib distributed version of OpenFL, [here](https://github.com/openfl/openfl).\n\nThe second edition of OpenFL is distributed using npm, and is designed for use from TypeScript, JavaScript (EcmaScript 5 or 6+), ActionScript 3 (using [Apache Royale](https://royale.apache.org)) or Haxe, the latter of which can be used in both haxelib and npm versions of OpenFL. The npm version of OpenFL is designed to be used in a web browser environment.\n\n\nGetting Started\n===============\n\nThe simplest way to get started is to use Yeoman to create a new project:\n\n```bash\nnpm install -g yo generator-openfl\nmkdir NewProject\ncd NewProject\nyo openfl\n```\n\nYou will have the opportunity to choose TypeScript, Haxe, ES6, ES5 or AS3 as the source language for your new project.\n\nThe template project will include configuration files for Webpack, as well as a source code entry point where you can begin writing a new project. In order to begin using OpenFL, you can try adding support for loading and displaying an image (_[continued below](#displaying-a-bitmap)_).\n\n\nFeatures\n========\n\nThe DOM (Document Object Model) is a convenient method of nesting and arranging visual content, but it is known to be slow. Use of the DOM is discouraged for animated content, unless steps are taken to limit the number of reflows. Normally to improve performance, a developer is forced to use either canvas 2D or WebGL, creating a new problem with writing new rendering code, and losing what made the DOM easy to work with.\n\nOpenFL provides a standard object model, along with additional features useful for animation and interactive development.\n\n## Rendering\n\n * WebGL 1 and 2\n * Canvas 2D\n * CSS 2D transforms (DOM)\n\n## Object Model\n\n * Matrix transforms\n * Color transforms\n * Hit testing\n * Event propagation\n * Bitmap caching\n * Filters (limited)\n * Masking and scroll rectangles\n\n## Vector Graphics\n\n * Solid, bitmap and gradient fills\n * Quadratic and cubic bézier curves\n * Ellipses, circles and paths\n * Rectangles and rounded rectangles\n * Lines with cap, joint and miter styles\n\n## Bitmap Data\n\n * Seamless support for image, canvas and typed array pixel stores\n * Transparency and premultiplied alpha\n * Get, set and copy pixels\n * Fill and flood fill\n * Color bounds calculation\n * Threshold operations\n * Render-to-texture\n * Output PNG and JPEG bytes\n * Channel blending between images\n * Noise and perlin noise (limited)\n * Palette swapping\n * Difference images\n * Scrolling\n\n## Text Support\n\n * Font, color and alignment\n * Selectable text input\n * Auto-size and alignment\n * Background and border\n * Plain or simple HTML text\n * Multi-line, restrict or password\n * Character metrics\n * Selection\n * Text replacement\n\n## Sound Support\n\n * Sound playback\n * Global sound mixing\n * Time, loops, sound transforms\n\n## Geometry Types\n\n * 2D (3x3) matrix\n * 3D (4x4) matrix\n * Orientation and perspective\n * Points and vectors\n * Rectangle\n\n## Networking\n\n * Save data to disk\n * Local storage\n * Web sockets\n * HTTP requests\n\n## Input\n\n * Mouse and touch\n * Keyboard\n * Gamepad\n\n## Other Features\n\n * Batched tile rendering\n * Video rendering\n * Asset management\n * MovieClip animations\n\n\nDisplaying a Bitmap\n===================\n\nCreate a new project using `yo openfl`\n\n```bash\nmkdir DisplayingABitmap\ncd DisplayingABitmap\nyo openfl\n```\n\nNext, download [openfl.png](assets/openfl.png) and save it your new \"dist\" directory.\n\nNext, use Visual Studio Code or another code editor to open \"src/app.ts\", \"src/app.js\" or \"src/App.hx\", depending upon the language type you used when you created the project. We will need to add a couple more imports, and a little code to load and display an image.\n\n## TypeScript\n\nAt the top of the file, add new imports:\n\n```typescript\nimport Bitmap from \"openfl/display/Bitmap\";\nimport BitmapData from \"openfl/display/BitmapData\";\n```\n\nThen extend the `constructor` method so it looks like this:\n\n```typescript\nconstructor () {\n\n\tsuper ();\n\n\tBitmapData.loadFromFile (\"openfl.png\").onComplete ((bitmapData) =\u003e {\n\n\t\tvar bitmap = new Bitmap (bitmapData);\n\t\tthis.addChild (bitmap);\n\n\t});\n\n}\n```\n\n## Haxe\n\nAt the top of the file, add new imports:\n\n```haxe\nimport openfl.display.Bitmap;\nimport openfl.display.BitmapData;\n```\n\nThen extend the `new` method so it looks like this:\n\n```haxe\npublic function new () {\n\n\tsuper ();\n\n\tBitmapData.loadFromFile (\"openfl.png\").onComplete (function (bitmapData) {\n\n\t\tvar bitmap = new Bitmap (bitmapData);\n\t\taddChild (bitmap);\n\n\t});\n\n}\n```\n\n## ES6 JavaScript\n\nAt the top of the file, add new imports:\n\n```typescript\nimport Bitmap from \"openfl/display/Bitmap\";\nimport BitmapData from \"openfl/display/BitmapData\";\n```\n\nThen extend the `constructor` method so it looks like this:\n\n```typescript\nconstructor () {\n\n\tsuper ();\n\n\tBitmapData.loadFromFile (\"openfl.png\").onComplete ((bitmapData) =\u003e {\n\n\t\tvar bitmap = new Bitmap (bitmapData);\n\t\tthis.addChild (bitmap);\n\n\t});\n\n}\n```\n\n## ES5 JavaScript\n\nAt the top of the file, add new require statements:\n\n```typescript\nvar Bitmap = require (\"openfl/display/Bitmap\").default;\nvar BitmapData = require (\"openfl/display/BitmapData\").default;\n```\n\nThen extend the `App` constructor so it looks like this:\n\n```typescript\nvar App = function () {\n\n\tSprite.call (this);\n\n\tBitmapData.loadFromFile (\"openfl.png\").onComplete (function (bitmapData) {\n\n\t\tvar bitmap = new Bitmap (bitmapData);\n\t\tthis.addChild (bitmap);\n\n\t}.bind (this));\n\n}\n```\n\n## ActionScript 3 (Royale)\n\nAt the top of the file's `package` block, add new imports:\n\n```actionscript\nimport openfl.display.Bitmap;\nimport openfl.display.BitmapData;\n```\n\nThen extend the `App` constructor so it looks like this:\n\n```actionscript\npublic function App () {\n\n\tsuper ();\n\n\tBitmapData.loadFromFile (\"openfl.png\").onComplete (function (bitmapData:BitmapData):void {\n\n\t\tvar bitmap:Bitmap = new Bitmap (bitmapData);\n\t\taddChild (bitmap);\n\n\t});\n\n}\n```\n\n\n## Running the Project\n\nYou can start a development server by going to the root directory of your project, and running `npm start`. In addition to compiling your application, it will open a new window in your web browser, with hot reloading enabled. This means that if you edit the `app.ts`, `app.js` or `App.hx` source file, the server will automatically compile your changes, and reload the current window, speeding up development. Now we can making more changes.\n\n\n## Adding Changes\n\nYou can continue make changes to your `app.ts`, `app.js` or `App.hx` file, to manipulate your bitmap after it is loaded.\n\nFor example:\n\n```haxe\nbitmap.x = 10;\nbitmap.y = 200;\nbitmap.rotation = 45;\nbitmap.alpha = 0.5;\n```\n\n## Other Samples\n\nThere are more sample projects with additional features (such as sound, animation and video) in each of the OpenFL samples repositories:\n\n - https://github.com/openfl/openfl-samples-ts\n - https://github.com/openfl/openfl-samples-haxe\n - https://github.com/openfl/openfl-samples-es6\n - https://github.com/openfl/openfl-samples-es5\n - https://github.com/openfl/openfl-samples-as3\n\nEach of the samples can be tested using `npm install` then `npm start`\n\n\nAdditional Reading\n==================\n\nGo to http://www.openfl.org for more information on OpenFL, and visit http://community.openfl.org to ask questions and get help!\n\n\nLicense\n=======\n\nOpenFL is free, open-source software under the [MIT license](LICENSE.md).\n\n\nDevelopment Builds\n==================\n\nClone the OpenFL repository:\n\n```bash\ngit clone https://github.com/openfl/openfl\n```\n\n## Using OpenFL with NPM\n\nFirst, install any NPM dependencies:\n\n```bash\ncd openfl\nnpm install\n```\n\nOptionally, you may choose to link with a clone of a dependency library (such as `lime`):\n\n```bash\ncd path/to/lime\nnpm link\n\ncd path/to/openfl\nnpm link lime\n```\n\nBuild OpenFL:\n\n```bash\nnpm run build -s\n```\n\nOnce built, you may want to `npm link` to use your version with other projects:\n\n```bash\nnpm link\n\ncd path/to/your-project\nnpm link openfl\n```\n\n## Using OpenFL with Haxelib\n\nFirst, tell haxelib where your development copy of OpenFL is installed:\n\n    haxelib dev openfl openfl\n\nSecond, you may want to build the OpenFL tools for processing SWF assets:\n\n    openfl rebuild tools\n\nLater, if you decide to return to release builds:\n\n    haxelib dev openfl\n\n_You may also need a development build of Lime installed._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfl%2Fopenfl-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfl%2Fopenfl-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfl%2Fopenfl-js/lists"}