flow is a project based build tool for the haxe programming language.
It is free and open source.
Haxe is an expressive, beautiful modern programming language
that compiles its own code into other languages. learn more
flow is currently considered alpha, which means there may be bugs, inconsistencies, incomplete implementations, and possible minor usage/project changes. It is still considered fairly stable and is being used by multiple frameworks and games, but there are things to tighten up before 1.0.0 release can be called final.
Join us in developing and testing the framework and tools, below.
What does it do?
flow is a project based build tool, meaning that it takes a flow file,
and executes the commands and tasks in the flow file to build an application.
An example of some of the available commands:
files- copies and templates files from your project to the build
icons- copies, converts and embeds icons for a build
package- creates a zip or tar archive from a build
run- builds, copies files, icons, runs hooks and launches the application
For a full list, see the usage guide.
Example flow fileA flow file is a project. It is a simple, not-strict json file.
Where does flow fit in?To understand where flow fits, you should understand the way haxe works its magic.
A target and a platform are not the same thing.
The haxe compiler transforms code from the haxe language, into another target language.
haxe -> c++
It’s important to know the difference, using the js target as an example.
There is no single platform associated with js, it can run in the browser, on the server, in a standalone executable on desktop or mobile. The most common platform is the web.
The web, is a platform.
Building an application
The code that haxe generates is 100% ready to use, in a webpage or an application,
haxe has done its job now and it’s your turn.
You need to put all this together, maybe in an html file or an app bundle, maybe package an apk for android, add some assets, an icon and make this work over a few platforms.
What if you want to run a script automatically before building?
What if you want to package nightly builds of your application for testers?
This is what flow is for
flow takes the haxe output, your project input, and creates shippable applications,
games, websites or more on its supported platforms.
A list of the supported platforms :
web- js (.js)
mac- c++ (.app)
windows- c++ (.exe)
linux- c++ (binary)
android- c++ (.apk)
ios- c++ (.xcodeproj)
by running the following command :
haxelib git flow https://github.com/underscorediscovery/flow.git
- on windows cmder is an excellent alternative to cmd.exe garbage
- on mac/linux fish is also a really nice shell
Install the flow shortcut
Anywhere you see
flow as a command, it’s because an alias has been set up.
If you don’t install the shortcut,
you must use
haxelib run flow instead of
flow where you see it.
Right now, the shortcut is a manual install but in the near future will be automated.
To install the shortcut alias
- copy this file to /usr/local/bin or anywhere in your path
- copy this file to c:\haxetoolkit\haxe next to the haxe.exe file, or anywhere in your path
The usage guide is accessed in full from the cli,
flow without arguments, or
for basic use
flow build <target> [--debug]
flow run <target> [--debug]
flow clean <target>
flow package <target>
If target is not specified, it will use your current system i.e
flow build on a mac will result in
flow build mac --arch 64
Where possible, full code completion and building from the editor is supplied.
Sublime Text (mac/windows/linux)
FlashDevelop (windows only)
icons- embeds and converts icons for all targets (except linux)
package- zip or tar your builds quickly
hooks- pre and post hooks (runs a node.js script)
clean- delete build and project output separately, or together
upx- for desktop platforms, final binary can be auto compressed
files- flexible copy and templating system
build- take haxe code, and generate a deployable app
launch- run the app, with file sync, internal web server and more
flow files - the project format
pipeline - what flow does exactly
platforms - all the gory details
design - how flow fits together
contribute - discuss, build, test
Projects using flow
flow is built using node.js
Things like flow
All trademarks and registered trademarks are the property of their respective owners.