On this page
Overview
OpenFL provides Haxe APIs derived from the Flash display, bitmap, text, and event model and targets HTML5, desktop, and mobile from one application. It connects games and interactive work to platform-specific rendering backends.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Best fit
Before adoption
Official sources
- [1]openfl/openfl README at 9.5.2(2026-10-05)
- [2]OpenFL official documentation(2026-10-05)
- [3]OpenFL 9.5.2 source(2026-10-05)
- [4]OpenFL 9.5.2 CI setup(2026-10-05)
- [5]OpenFL 9.5.2 haxelib metadata(2026-10-05)
- [6]openfl/openfl LICENSE.md at 9.5.2(2026-10-05)
- [7]openfl/openfl GitHub metadata(2026-10-05)
Supplemental curator note
It suits 2D work that wants Flash-like display APIs across targets. First build a blue square for HTML5 from a local haxelib repository, then assess each target SDK and rendering difference.
Try it in 3 steps
- 1
Install the pinned releases locally
Requires Haxe 3.4.7 or later and haxelib. Make the temporary directory a haxelib repository, install pinned Lime 8.1.3 and OpenFL 9.5.2, and run the setup used by pinned CI.
demo=$(mktemp -d "${TMPDIR:-/tmp}/openfl-demo.XXXXXX") && cd "$demo" && haxelib newrepo && haxelib install lime 8.1.3 --quiet && haxelib install openfl 9.5.2 --quiet && haxelib run lime setup -alias -y && haxelib run openfl setup -alias -y && mkdir -p Source - 2
Write a blue-square scene
Create project.xml and Main.hx, drawing a 120-by-80 blue rectangle on a Sprite.
printf '%s\n' '<project>' ' <meta title="OpenFL Demo" package="demo.openfl" version="1.0.0" company="Local"/>' ' <app main="Main" path="Export" file="openfl-demo"/>' ' <source path="Source"/>' ' <haxelib name="openfl"/>' '</project>' > project.xml && printf '%s\n' 'import openfl.display.Sprite;' 'class Main extends Sprite {' ' public function new() {' ' super();' ' graphics.beginFill(0x3366FF);' ' graphics.drawRect(0, 0, 120, 80);' ' graphics.endFill();' ' }' '}' > Source/Main.hx - 3
Verify HTML5 output
Build the HTML5 target and require the generated index.html.
haxelib run openfl build html5 && test -f Export/html5/bin/index.html
Growth
Growth trends · Last 30 days
2,159 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 18
- Open PRs
- 95
Development activity is still being collected.
Built with
Categories and tags
Categories
Tags
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- adobe-air
- adobe-flash
- cross-platform
- flash
- frontend
- game-development
- gamedev
- hashlink
- haxe
- multi-platform
- neko
- openfl
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- libGDX25,422 Stars
1 shared tag(s) · 1 shared category(s)
Build 2D and 3D games in Java for desktop, mobile, and the web from shared code
Java - Bullet Physics14,764 Stars
1 shared tag(s) · 1 shared category(s)
embed real-time collision detection and physics simulation in games, robotics, VR, and machine-learning workloads
C++ - MonoGame14,487 Stars
1 shared tag(s) · 1 shared category(s)
build 2D and 3D games across platforms with C# and .NET
C# - Assimp13,246 Stars
1 shared tag(s) · 1 shared category(s)
load 40+ 3D formats into a shared scene structure and integrate conversion and post-processing into asset pipelines
C++ - Cocos Engine9,845 Stars
1 shared tag(s) · 1 shared category(s)
use a C++ and TypeScript runtime to deliver 2D and 3D games across native, web, and mini-game platforms through Cocos Creator
C++ - Flax Engine7,040 Stars
1 shared tag(s) · 1 shared category(s)
build 3D games in C++ and C# with an integrated editor, rendering, scripting, and multi-platform build workflow
C++
Report incorrect information
Tell us if any listing information is incorrect or outdated.