/go2hx

Go -> Haxe -> JS Java C# C++ C Python Lua

Primary LanguageHaxeMIT LicenseMIT

go2hx

Compiling Go libraries & code into Haxe

Targets: Js, Lua, C#, C++, Java, C, Python

  • Plug and play support for Haxe & Go.
  • Human-like small generated output.
  • Leverage Haxe libraries from Go (coming soon)

warning: heavily experimental still a ways to go before an alpha

Getting started

  • Download Golang here
  • Download lix with npm: npm install lix -g
  • Installing go2hx: lix install https://github.com/go2hx/go2hx --global
  • Building: lix run go2hx ./main.go or lix run go2hx github.com/tidwall/btree

Aknowledgement

A spiritual successor to Tardisgo written by Elliott Stoneham, The developer that has set the building blocks conceptually for this project, as well as a code contributor, with use of some of his code from Tardisgo.

Code Overview

  • The packages are generated by arguments and flags, and exported out from the Go side by json.
  • The Haxe side then reads the exported data and begins typing up the data into TypeDefinitions, Fields, and Exprs.
  • The types are generated into Haxe files.
  • The generated code uses the stdgo package, that contains the basic types, builtin functions, and some macro magic.

Inspiration