Downloading Haxe 3.0.0-rc.1

If your download does not begin automatically please click here.

Support the Haxe Foundation

Thank you for downloading Haxe. If you'd like to support the Haxe Foundation please consider donating to keep our open source efforts thriving.

Monthly Donation Amount

Get Technical Help

Get support directly from the Haxe team. The Haxe Foundation offers several support tiers to help with your organization's technical challenges.

Explore our support plans

What next?

Change Log

  • flash : updated player 11.4 api
  • all : allowed named functions as r-value
  • all : fixed using + overload usage
  • all : allow any type constraint for type parameters
  • all : make property type optional (when a initial value is set)
  • all : Std.random(x) when x <= 0 is now always 0
  • spod : added serialized data with SData
  • all : Dispatcher will now throw DETooManyValues
  • all : speed up neko compilation by using native compiler
  • all : allow @:generic on functions
  • all : allow constructing generic type parameters
  • swf : added support for SWC files in -swf-lib
  • macro : added Context.onTypeNotFound callback for unresolved types
  • js : no JS embed as default (use -D embed-js instead)
  • all : added abstract types (Int/Float/Bool/Void/Class/Enum/EnumValue)
  • all : added --help-defines
  • all : changed DCE with three modes : std(default), no and full
  • all : Haxe3 packages changes (see http://haxe.org/manual/haxe3)
  • all : Removed haxe.Int32, haxe.Firebug, haxe.TimerQueue
  • all : added -D key=value and #if (key >= value) operations
  • all : StringTools.htmlEscape/unescape nows handle "/" and '/'
  • all : using and import must now appear before any type declaration in a file
  • all : no longer create variable fields for pure getter/setter properties (unless @:isVar is used)
  • all : use default get_prop/set_prop instead of custom getter/setter names for properties
  • js : added JQuery.delegateTarget
  • macro : removed EType and CType, added EMeta, modified ESwitch
  • all : allow @metadata expr
  • all : replaced haxe.rtti.Generic interface with @:generic metadata
  • all : no longer infer arrays of mixed types as Array
  • all : all type/import/enum constructor resolution now follows the shadowing principle (latest has priority)
  • all : added EReg.matchSub, renamed EReg.customReplace to map
  • all : no longer allow initialization of extern non-inline variables
  • swf : fixed out of memory errors on very large swf-lib files
  • swf : added -D swf_preloader_frame, swf_gpu, swf_direct_blit
  • swf : added -D swf_script_timeout=seconds, swf_debug_password=password, swf_metadata=file
  • swf : added -swf-lib-extern
  • swf : added @:font support (beta)
  • all : added GADT support in enums
  • all : added pattern matching (beta)
  • all : changed callback(func, args) to func.bind(args)
  • macro : added haxe.macro.ExprTools/ComplexTypeTools/TypeTools
  • macro : changed reification syntax to ${expr}, $a{array}, $p{path}, $v{value}
  • macro : allow macro @:pos(pos-expr) to inject positions for reification
  • all : added array comprehension
  • flash : Vector.length is now Int instead of UInt
  • all : moved haxe.BaseCode, haxe.Md5 and haxe.SHA1 to haxe.crypto package
  • all : disallow Void variables and arguments (still allow S -> T to S -> Void)
  • all : added Array.map/filter
  • all : added spell check suggestions for enum constructors and fields
  • all : added opaque abstract(T) types
  • all : allow operator overloading on opaque abstract types
  • all : renamed IntIter to IntIterator
  • all : added Map
  • all : added haxe.ds with StringMap, IntMap, HashMap, ObjectMap, Vector, GenericStack
  • all : removed Hash, IntHash and haxe.FastList in favor of the types in haxe.ds
  • all : haxe.xml.Parser now handles entities consistently across platforms
  • all : renamed HAXE_LIBRARY_PATH environment variable to HAXE_STD_PATH

Getting Started With Haxe

Now that you've downloaded Haxe, you can get started with a specific platform. Click on a logo to learn how to set up the development environment and how to proceed from there:

For getting started with Haxe, take a look at our introduction, read through the Haxe Manual or look at these use cases for Haxe, including tutorials and popular libraries: