Skip to content
Please note that GitHub no longer supports Internet Explorer.

We recommend upgrading to the latest Microsoft Edge, Google Chrome, or Firefox.

Learn more
Haxe to nim transpiler
Haxe Nim
Branch: master
Clone or download
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode Initial implementation of Struct Apr 9, 2019
core Refactor core; Iterators Jul 9, 2019
node_modules
src/craxe Refactor core; Iterators Jul 9, 2019
.gitignore
.haxerc
Readme.md
develop_nim.hxml
haxelib.json
iteratorTest.nim
package-lock.json
package.json New switch implementation; Bug fix with gcsafe Jun 24, 2019

Readme.md

Warning. Just an experiment. Lot of bugs!!!

Transpiler from haxe to nim (http://nim-lang.org/)

The main goal for now is:

  • High performance.
  • Low memory footprint.
  • Stable garbage collector, or maybe no GC at all (owned/unowned ref).
  • Async IO: Files, TCP, UDP, HTTP, HTTPS, Websockets.

What it's all good for?

Backend, micro services, iot, calculations, haxe compiler :)

Why not go, rust, D and other languages?

Because.

What it can do:

  • Classes:
    • inheritance
    • constructors
    • super call
    • static and instance methods
    • instance fields
  • Interfaces
  • Typedefs
  • Anonymous
  • Basic types:
    • Int
    • Float
    • String
    • Bool
    • Generic Array
    • IntMap, StringMap, ObjectMap
  • Enums and ADT
  • Abstracts and enum abstracts
  • Generics
  • GADTs
  • Expressions:
    • for
    • while
    • if
    • switch
  • Closures
  • Externs
  • Basic file reading by File.getContent
  • haxe.Json
  • Stdin output by trace

How to use it

Examples

https://github.com/RapidFingers/CraxeExamples

Roadmap

  • Switch expression
  • Inheritance
  • Interfaces
  • BrainF**k benchmark
  • Basic externs implementation
  • Closures
  • Typedefs
  • Anonymous
  • Abstracts
  • Enum abstracts
  • Generics
  • GADT
  • Map/Dictionary
  • Method override
  • Place all nim code to nimble library
  • Extern for CraxeCore's http server
  • Benchmark of async http server
  • Possibility to add raw nim code
  • Dynamic type
  • haxe.Json
  • Extern for native nim iterators
  • Mysql database driver
  • Craxe http server benchmark with json and mysql
  • Dynamic method
  • Try/Catch
  • Reflection
  • Auto import nimble libs
  • Craxe console util for setup, create project, etc
  • Type checking (operator is)
  • Async/Await
  • Some kind of std lib
You can’t perform that action at this time.