Skip to content

RapidFingers/Craxe

Repository files navigation

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

Releases

No releases published

Packages

No packages published