Subscribe Free

Join 2670+ others. No spamming.
I promise!

We are currently under high development. Follow us at github.


Looking for Python Tutorials?
Check these awesome tutorials



scala-native/scala-native

2054

scala-native / scala-native

Scala

Your favourite language gets closer to bare metal.


READ ME

Scala Native

Join the chat at https://gitter.im/scala-native/scala-native

Build Status

Scala Native is a new ahead-of-time compiler and lightweight managed runtime designed specifically for Scala. Project is currently in pre-release stage. Follow us on twitter to be first to know about upcoming updates.

Features

  • Low-level primitives.

    type Vec = CStruct3[Double, Double, Double]
    
    val vec = stackalloc[Vec] // allocate c struct on stack
    !vec._1 = 10.0            // initialize fields
    !vec._2 = 20.0
    !vec._3 = 30.0
    length(vec)               // pass by reference

    Pointers, structs, you name it. Low-level primitives let you hand-tune your application to make it work exactly as you want it to. You're in control.

  • Extern objects.

    @extern object stdlib {
      def malloc(size: CSize): Ptr[Byte] = extern
    }
    
    val ptr = stdlib.malloc(32)

    Calling C code has never been easier. With the help of extern objects you can seamlessly call native code without any runtime overhead.

  • Instant startup.

    > time hello-native
    hello, native!
    
    real    0m0.005s
    user    0m0.002s
    sys     0m0.002s
    

    Scala Native is compiled ahead-of-time via LLVM. This means that there is no sluggish warm-up phase that's common for just-in-time compilers. Your code is immediately fast and ready for action.

Community

Documentation

scala-native.readthedocs.io

License

Scala Native is distributed under the Scala license.