Scala Native

repo: tindzk/awesome-scala-native
category: Programming Languages related: Scala


Awesome Scala Native Awesome

<a href="http://www.scala-native.org/"><img alt="Scala Native" align="right" width="250" height="250" src="logo.png"></a>

Scala Native is an optimising ahead-of-time compiler for the Scala programming language. Traditionally, a virtual machine, the JVM, was required to run Scala programs. Scala Native taps into the compiler to emit LLVM intermediate representation rather than JVM bytecode. Then, the LLVM compiler infrastructure is used to produce native libraries and executables. Given that Scala Native executables are stand-alone programs, they generally have a shorter start-up time and low memory consumption. This opens up new avenues to deploy Scala programs where previously the virtual machine would be the limiting factor. For example, developers could write programs for the command line or embedded devices.

Contents

Tutorials and Examples

  • [Giter8 template for a minimal Scala Native project](https://github.com/scala-native/scala-native.g8) - Official Giter8 template for a minimal Scala Native project.
  • [Hands on Scala Native](https://github.com/MasseGuillaume/hands-on-scala-native) - Tutorial for implementing a bandwidth monitor with Ncurses.
  • [Starter for Scala Native](https://github.com/GnaneshKunal/scala-native-starter) - Scala Native project that links to a custom C library.
  • Building C code using sbt-jni - Example for compiling C code in a Scala Native project using sbt-jni.
  • Example project with external dependencies - Example project that uses external dependencies to generate HTML and run a test suite.
  • Starter for Gtk+ Projects - Giter8 template for Scala Native GUI projects using Gtk+.
  • [Modern systems programming with scala native](https://pragprog.com/titles/rwscala/modern-systems-programming-with-scala-native/) book.
  • [Write a simple CLI application in Scala Native](https://github.com/ItoYo16u/prettytable-native)

Build Tools

  • sbt - Scala's standard build tool.
  • Mill - Build tool striving for simplicity, inspired by Bazel.
  • Bloop - Scala build server and command-line tool for fast developer workflows.
  • Seed - Build tool based on Bloop. Focuses on user experience and cross-platform builds, inspired by Cargo.

Functional Programming

  • Shapeless - Library for generic programming.
  • Squants - DSL for quantities, units of measure and dimensional analysis.
  • scalaz - Type classes and instances for data structures.
  • nobox - Immutable primitive array wrapper without boxing.
  • PPrint - Pretty-print values and types.
  • SourceCode - Implicits providing meta data similar to __LINE__ in C.
  • reactify - Functional Reactive Programming framework for Scala.
  • chimney - Boilerplate-free data transformations.
  • Quicklens - Modify deeply nested case class fields.
  • Cats - Abstractions for functional programming in Scala.

Unit Tests

Bindings

File Formats and Parsers

Databases

Web Development

Concurrency

Logging

Console

Robotics

  • Potassium - Framework for writing robot software.
  • WPILib - Reimplementation of the [FIRST Robotics WPILib libraries](http://first.wpi.edu/FRC/roborio/release/docs/java/).

Programs

Infrastructure

Licence

<a rel="licence" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons Licence" style="border-width:0" src="https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/by.svg" /></a><br />This work is licenced under a <a rel="licence" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International Licence</a>.

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?