Skip to main content

VirtusLab's ArticlesRSS

Scala|Oct 28, 2025

Bringing Scala to Server-Side Wasm with WASI & Component Model

WebAssembly (Wasm) is a binary instruction format and low-level language that runs in various environments, including browsers. While it was originally designed for browser applications, its adoption is expanding beyond browsers into cloud and edge computing environments, due to Wasm's features. This article explains the advantages of compiling Scala to Wasm and future prospects.

Wasm_logo
Scala|Oct 27, 2025

Rethinking Gatling: A Scala CLI and Containerisation Approach to Performance Testing

Gatling proved to be an excellent tool for performance testing - especially in monolithic environments. It integrated well into traditional CI pipelines, and its DSL made writing tests both expressive and maintainable. But as our architecture evolved toward microservices and cloud-native deployments, performance testing became significantly more complex. In this article, we will look at an alternative approach to Gatling, one that overcomes its out-of-the-box limitations.

logos_gatling_Scala_cli_docker
Scala|Aug 27, 2025

Distributing Test Execution with SBT: A Complete Guide to Parallel CI/CD

Test suites have grown in size and complexity. What used to be a quick validation step has become a bottleneck that can significantly impact development velocity. The solution is to distribute test execution across multiple machines, running different test groups in parallel.

mirage_code
Scala|Mar 7, 2025

Infrastructure as types: introducing TypeOps

Modern infrastructure as code (IaC) solutions have automated much of the cloud provisioning process, yet they still lack robust correctness guarantees, leading to costly misconfigurations and inefficiencies. TypeOps introduces the power of type systems to DevOps, enabling compile-time validation of infrastructure code, reducing errors before deployment, and ensuring more reliable and scalable cloud operations.

Infrastructure_as_types_introducing_TypeOps_image-min.jpg
Scala|Dec 17, 2024

Scala, Bazel, Akka, and monorepos: A technical perspective of monorepo migration

Companies, especially mid-sized and larger ones, face the challenge of structuring projects at scale. Arguably, almost every technology and paradigm can be used by a single developer to write a small piece of code, but obviously, this is not enough for any organization—engineering solutions must allow people from multiple disciplines to develop and maintain the application efficiently throughout the whole application lifecycle.

Scala_Bazel_Akka_and_monorepos:_a city made out of containers
Scala|Jul 18, 2024

Scala to WebAssembly: How and Why

WebAssembly (Wasm) is a binary instruction format that offers a compact and efficient way for executing code across diverse environments, including the web. Previously, Scala couldn’t directly compile to Wasm, but now Scala.js will support Wasm as its new linker backend, thanks to the collaborative efforts of the ScalaCenter and VirtusLab. This development may raise a question: why does Scala aim to compile to Wasm, and how is this achieved?

scala and web assembly logos
Scala|Jul 4, 2024

Scala 3 Roadmap for 2024

As Scala 3 maintainers, VirtusLab has big plans for this year. We have put them all together in a detailed roadmap, specifying the future of Scala 3 in 2024. Read on to learn how we intend to release new versions more often, improve reporting, and enhance the UX of Scala 3 and the tooling.

Scala_3_Roadmap_for_2024_image-min.jpg
Scala|Jul 1, 2024

Scala Long-Term Support retrospective

Scala 3.3.0 was released as the first Long-Term Support (LTS) version in Scala's history. Let's see what happened and what changes occured.

Scala_Long-Term_Support_retrospective_image-min.jpg
Scala|Jun 14, 2024

Overcoming macro annotations

Scala 2 accumulated multiple amazing features that either improve the readability of the code, make it easier to write and maintain, or reduce the amount of boilerplate. Even though most of them have become an integral part of the language, some were only treated as experimental—their goal was to discover new language capabilities. Still, it was treated as a temporal and prone to change solution.

Scala logo on green
Scala|Apr 25, 2024

How to build AI apps with Scala 3 and Besom

VirtusLab shows you how to build an AI app with Scala 3 & Besom from scratch.

How_to_build_AI_apps_with_Scala_3_and_Besom_image-min.jpg
Scala|Jun 28, 2023

How to mine Scala 3 compiler metadata using TASTy files

Learn how we leveraged Scala 3's decompiler to mine compiler metadata with TASTy files, streamlining data gathering in 150 code lines.

How_to_mine_Scala_3_compiler_metadata_using_TASTy_files_image-min.jpg
Scala|May 12, 2023

The Scala 3 compatibility story

No programming language can succeed long-term without strong stability guarantees. Scala 3 takes this seriously, giving you excellent backward output compatibility and ensuring your code will work in future versions without changes.

The Scala 3 compatibility story image