Top 23 Scala SBT Projects
sbt, the interactive build toolProject mention: SBT management on Apple M1 | reddit.com/r/scala | 2021-04-30
It's an issue with the zule jvm and Java native access. A workaround is provided in this thread.
Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt)Project mention: SBT error when running package application: java.lang.RuntimeException: No main class detected. | reddit.com/r/scala | 2021-06-09
You may also use sbt-assembly to produce an uber JAR that embeds the Scala stdlib together with your code, which means that now for running your program you only need a JRE like java -jar app-assembly.jar. This option is great because now if you start adding dependencies to your project those are also included in this massive JAR.
Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
sbt Native PackagerProject mention: Why Scala is way slower than python ... and than Java too in leetcode? | reddit.com/r/scala | 2021-07-15
As others have stated, this is mainly due to the nature of the JVM. You can try using GraalVM however, which basically complies JVM bytecode to native-code avoiding startup time issues, sbt-native-packager lets you do this quite easily.
:robot: A bot that helps you keep your Scala projects up-to-dateProject mention: Scala projects to read through | reddit.com/r/scala | 2021-08-07
Convenient and performant logging library for Scala wrapping SLF4J. (by lightbend)
Create Docker images directly from sbt
sbt plugin that can check Maven and Ivy repositories for dependency updates
Run Linux Software Faster and Safer than Linux with Unikernels.
Refactoring and linting tool for ScalaProject mention: Newspeak and Domain Modeling | news.ycombinator.com | 2021-06-29
or `NonUnitStatements` without explicit annotation.
This effectively locks you into writing pure code (you can extend the linter to cover other things like not using `Future` or not using Java libs outside of `MonadError` from cats). The linters operate on typed ASTs at compile time, and have plugins for the most popular scala build tools. Coupled with `-XFatalWarnings', you can guarantee that nothing unexpected happens unless you explicitly pop the escape hatch, for the most part.
You can still bring in external libraries that haven't been compiled with these safties in place, so you aren't completely safe, but if you use ZIO/Typelevel libraries you can be reasonably assured of referentially transparent code in practice.
There are three schools of thought, roughly, in the scala community towards the depth of using the type system and linters to provide guarantees and capabilities, currently:
1) Don't attempt to do this, it makes the barrier to entry to high for Scala juniors. I don't understand this argument - you want to allow runtime footguns you could easily prevent at compile time because the verifiable techniques take time to learn? Why did you even choose to use a typesafe language and pay the compilation time penalty that comes with it?
2) Abstract everything to the smallest possible dependency interface, including effects (code to an effect runtime, F[_] that implements the methods your code needs to run - if you handle errors, F implements MonadError, if you output do concurrent things, F implements Concurrent, etc.) and you extend the effect with your own services using tagless final or free.
3) You still use effect wrappers, but you bind the whole project always to use a concrete effect type, avoiding event abstraction, thus making it easier to code, and limiting footguns to a very particular subset (mainly threadpool providers and unsafeRun or equivalent being called eagerly in the internals of applications).
My opinion is that smallest interface with effect guarantees (#2) is best for very large, long maintenance window apps where thechoice of effect runtime might change(app), or is out of the devs' control (lib); and #3 is best for small apps.
TL/DR; You can go a really, really long way to guaranteeing effects don't run in user code in scala. Not all the way like Haskell, but far enough that it's painful to code without conforming to referential transparency.
A release plugin for sbt
I know this because build.sbt knows this.
The Functional and Reactive Web-Frontend Library for ScalaJS
Servlet support for sbt
A Scala wrapper for Deeplearning4j, inspired by Keras. Scala + DL + Spark + GPUs
An interactive playground for ScalaProject mention: Scala or Go: Who Wore It Better? | dev.to | 2021-09-06
Operationally, as you might expect from a language borne from academia, Scala tooling can be problematic and compilation can be slow--particularly if you are not yet using Scala 3, which only recently emerged and is very slowly percolating through the ecosystem (Remember the Python 2 to Python 3 transition?). But type inference, a vast standard library, and the time-tested reliability of the JVM make you very productive once you get the hang of them. Performance varies with the JVM you're running, but regardless you do have to contend with the size of compiled objects and the latency of garbage collection at runtime. When you want to experiment, you can skip the ceremony of writing a class or test and instead use a command-line REPL, an online REPL called Scastie you can share, or an outstanding third-party command-line REPL called Ammonite. Dependency management is achieved with SBT typically but also more general JVM build tools like Gradle and Maven.
An sbt plugin to create awesome microsites for your projectProject mention: Friction-less scala - Tell us what is causing friction in your day-to-day life with Scala | reddit.com/r/scala | 2021-08-10
An example sbt project that compiles using DottyProject mention: What are resources to learn/get up to speed with Scala3 for experienced Scala2 dev? | reddit.com/r/scala | 2021-06-06
scalac options for the enlightenedProject mention: Is there a way to beautify the code after Scala 3 migration? | reddit.com/r/scala | 2021-08-24
Sorry, have nothing useful to contribute (although I'd recommend you to set a restrictive set of scalac flags, for example from sbt-tpolecat, to let compiler help you), but just wanted to praise the Scala team and remind us of all those "Python 3 situation" rants we've saw 2 years ago and how silly they look now.
SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow:Project mention: Security Vulnerability Scanning for Scala | reddit.com/r/scala | 2021-05-23
SBT plugin to use Scala.js along with any sbt-web server.
Cross-platform compilation support for sbt.Project mention: Friction-less scala - Tell us what is causing friction in your day-to-day life with Scala | reddit.com/r/scala | 2021-08-10
SBT. It's not because of the pseudo-scala config language, that looks especially alien next to braceless Scala 3 code. Or the weird symbolic operators. The big problem is correctness; in almost every project I've had to use spray-resolver because I've encountered weird bugs because SBT reuses the same dirty JVM. I really thing Drip would help here. I'll keep using SBT because it has the best Scala ecosystem support and great plugins like sbt-crossproject. It would also be great to be able to write build.sbt files in modern, regular Scala.
Doctest for scala
Site generation for sbt
Plugin to generate native-image binaries with sbtProject mention: Native Image Compilation for A Purely Functional Example Application | reddit.com/r/scala | 2021-08-15
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
What are some of the best open-source SBT projects in Scala? This list will help you:
Are you hiring? Post a new remote job listing for free.