sbt-native-image
sn-bindgen
Our great sponsors
sbt-native-image | sn-bindgen | |
---|---|---|
5 | 3 | |
246 | 74 | |
1.6% | - | |
2.9 | 7.7 | |
6 days ago | about 1 month ago | |
Scala | Scala | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sbt-native-image
-
Scala.js AWS Lambda, using Scala 3
Take a look at sbt-native-image or sbt-native-packager for building the native image.
-
GraalVM native-image with Scala 3 reflection hell
The reason seems to be Scala 3's new encoding for lazy vals, where a reflective access to a variable called bitmap takes place. To demonstrate this, I took the http4s g8 template, set it up with Scala 3.1.0, added sbt native-image, started the nativeImageRunAgent and ran a single request against GET /joke. After stopping the server, the native-image run agent generated the reflective configs that are required for this path of execution. Comparing the generated Scala 2.13 with the Scala 3 configs, yields a bloated version for Scala 3 that contains these additional rules:
-
Is Scala and Play Framework dying?
Sbt plugin: https://github.com/scalameta/sbt-native-image
-
Native Image Compilation for A Purely Functional Example Application
IIRC, the sbt-native-image plugin can abstract that away, too: https://github.com/scalameta/sbt-native-image#nativeimagerunagent https://github.com/scalameta/sbt-native-image
-
SBT error when running package application: java.lang.RuntimeException: No main class detected.
Assembly, however, has some disadvantages so you may also want to look into other alternatives like sbt-native-packager. You may even want to produce a binary using sbt-native-image (which uses GraalVM under the hood) so your users do not need to install anything at all, not even a JRE.
sn-bindgen
- Reimplementing gnu utils with Scala Native
-
The Typelevel stack and Scala Native
sn-bindgen uses libclang to do exactly this.
-
Scala.js AWS Lambda, using Scala 3
3.a. Scala Native + https://github.com/indoorvivants/sn-bindgen + manually memory managed AWS SDK used through C ABI, e.g. AWS SDK C++.
What are some alternatives?
sbt-native-packager - sbt Native Packager
tutorials - Tutorials on Lightweight Modular Staging
zio-microservice - ZIO-powered microservices via HTTP and other protocols.
Distribution - The Javascript ecosystem for Scala.js!
sbt-assembly - Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt)
scalanative-gtk - scala-native bindings for Gtk+, GLib, ...
LogoRRR - A simple and straightforward log viewer that displays the events of interest in a clear and concise visual manner so that you can identify them faster.
aws-sdk-scalajs-facade - A complete set of Scala.js type facade for aws-sdk-js
Finatra - Fast, testable, Scala services built on TwitterServer and Finagle
feral - Feral cats are homeless, feral functions are serverless
tapir - Declarative, type-safe web endpoints library