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
core
node_modules New switch implementation; Bug fix with gcsafe Jun 24, 2019
src/craxe Refactor core; Iterators Jul 9, 2019
.gitignore
.haxerc New switch implementation; Bug fix with gcsafe Jun 24, 2019
Readme.md New switch implementation; Bug fix with gcsafe Jun 24, 2019
develop_nim.hxml New structure Mar 28, 2019
haxelib.json Update haxelib.json Apr 9, 2019
iteratorTest.nim Nim iterator Jun 11, 2019
package-lock.json New switch implementation; Bug fix with gcsafe Jun 24, 2019
package.json

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.