# scala/scala

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/scala-scala).**

14,548 stars · 3,083 forks · Scala · Apache-2.0

## Links

- GitHub: https://github.com/scala/scala
- Homepage: https://www.scala-lang.org/
- awesome-repositories: https://awesome-repositories.com/repository/scala-scala.md

## Topics

`functional-programming` `jvm-languages` `object-oriented-programming` `scala` `scala-compiler` `scala-library` `scala-programming-language`

## Description

Scala is a statically typed programming language and compiler that combines object-oriented and functional programming paradigms. It serves as a cross-platform runtime language capable of targeting the Java Virtual Machine and JavaScript to share logic between backend servers and web frontends.

The project provides a functional programming framework with immutable data structures and higher-order functions to build reliable concurrent and distributed applications. It distinguishes itself through deep interoperability with Java and JavaScript ecosystems and the ability to transform code into native binaries for fast startup times and simplified deployment.

The standard library covers a wide range of capabilities, including big data processing across distributed clusters, full-stack web development with type-safe data models, and the creation of command-line tooling. It also includes core APIs for managing data collections, file system interactions, network requests, and concurrency primitives.

## Tags

### Programming Languages & Runtimes

- [Functional Programming Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/functional-programming-frameworks.md) — Provides a functional programming framework featuring immutable data structures and higher-order functions.
- [Concurrent Data Structures](https://awesome-repositories.com/f/programming-languages-runtimes/concurrent-data-structures.md) — Provides thread-safe concurrent data structures for building reliable multi-core and distributed applications. ([source](https://www.scala-lang.org/))
- [Cross-Language Bridges](https://awesome-repositories.com/f/programming-languages-runtimes/cross-language-bridges.md) — Bridges the Java and JavaScript ecosystems, allowing code to call libraries and export modules across runtimes. ([source](https://www.scala-lang.org/))
- [Multi-Target Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/cross-platform-runtimes/multi-target-runtimes.md) — Targets both the JVM and JavaScript to share logic across backend servers and web frontends.
- [Data Collection Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/data-collection-libraries.md) — Provides a comprehensive set of immutable, mutable, and concurrent data structures for organizing and manipulating collections. ([source](https://www.scala-lang.org/api/current/index.html))
- [First-Class Functions](https://awesome-repositories.com/f/programming-languages-runtimes/first-class-functions.md) — Provides first-class functions that can be assigned to variables and passed as arguments.
- [Language Interoperability](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability.md) — Implements deep interoperability with the Java ecosystem, allowing the use of Java libraries within a functional paradigm.
- [Closure Captures](https://awesome-repositories.com/f/programming-languages-runtimes/local-variable-captures/closure-captures.md) — Implements closure-specific variable capture semantics to maintain state across different execution contexts.
- [Multi-Paradigm Programming Languages](https://awesome-repositories.com/f/programming-languages-runtimes/multi-paradigm-programming-languages.md) — Combines object-oriented and functional programming paradigms in a statically typed language for the JVM.
- [JVM Bytecode Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-bytecode-compilation/jvm-bytecode-compilers.md) — Translates high-level source code into JVM bytecode for cross-platform execution on the Java Virtual Machine.
- [Runtime Type Dispatching](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/type-definition-systems/runtime-type-dispatching.md) — Implements runtime type dispatching to resolve function calls by matching expected types against implementations.
- [Standard Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/standard-libraries.md) — Includes a comprehensive standard library for data collections, file system interactions, and network requests.
- [Statically Typed Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/statically-typed-compilers.md) — Transforms high-level source code into JVM bytecode using strong type checking and inference.
- [File Read and Write Operations](https://awesome-repositories.com/f/programming-languages-runtimes/file-read-and-write-operations.md) — Provides standard library primitives for local file system read and write operations. ([source](https://www.scala-lang.org/api/current/index.html))
- [Reflection APIs](https://awesome-repositories.com/f/programming-languages-runtimes/reflection-apis.md) — Provides standardized APIs for performing runtime meta-operations and inspecting program structures. ([source](https://www.scala-lang.org/api/current/index.html))

### Data & Databases

- [Big Data Processing](https://awesome-repositories.com/f/data-databases/big-data-processing.md) — Provides frameworks for analyzing and processing massive volumes of data across distributed systems.
- [Persistent Collection Implementations](https://awesome-repositories.com/f/data-databases/immutable-collection-sorting/persistent-collection-implementations.md) — Provides persistent collection implementations that preserve state through structural sharing for safe concurrent access.

### Development Tools & Productivity

- [Concurrent Task Execution](https://awesome-repositories.com/f/development-tools-productivity/concurrent-task-execution.md) — Manages asynchronous computations and concurrent task execution to improve throughput. ([source](https://www.scala-lang.org/api/current/index.html))
- [Native Binary Toolchains](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/binary-compilation-toolchains/native-binary-toolchains.md) — Allows transformation of high-level source code into platform-specific native binaries for direct execution. ([source](https://www.scala-lang.org/))
- [Command Line Frameworks](https://awesome-repositories.com/f/development-tools-productivity/command-line-frameworks.md) — Enables the creation of system utilities and scripts with fast startup and streamlined dependency management.
- [Native AOT Compilation](https://awesome-repositories.com/f/development-tools-productivity/native-compilation/native-aot-compilation.md) — Implements ahead-of-time compilation to native machine instructions for faster startup and reduced memory usage. ([source](https://www.scala-lang.org/))
- [Command Line Utilities](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/general-enhancements-tooling/terminal-productivity/command-line-utilities.md) — Enables the creation of terminal-based command line utilities to automate system tasks. ([source](https://www.scala-lang.org/))

### DevOps & Infrastructure

- [Distributed Systems](https://awesome-repositories.com/f/devops-infrastructure/distributed-systems.md) — Provides the foundation for building and managing horizontally scalable distributed applications across clusters.

### Software Engineering & Architecture

- [Language Mixins](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/object-oriented-foundations/object-oriented-programming/behavior-customization/entity-behavior-modules/trait-based-compositions/language-mixins.md) — Provides trait-based mixin composition to combine independent modules of functionality into a single class.
- [Multiplatform Code Sharing](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-development/multiplatform-code-sharing.md) — Employs multiplatform code sharing patterns to run common data models and logic on both frontend and backend. ([source](https://www.scala-lang.org/))
- [Distributed Application Building](https://awesome-repositories.com/f/software-engineering-architecture/distributed-application-building.md) — Provides a framework for constructing applications that run as a single unit across distributed machines. ([source](https://www.scala-lang.org/))
- [Ecosystem Interoperability](https://awesome-repositories.com/f/software-engineering-architecture/ecosystem-interoperability.md) — Facilitates ecosystem interoperability by integrating external libraries from various runtimes. ([source](https://www.scala-lang.org/))
- [Reflective Metadata Programming](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/aspect-oriented-programming/reflective-metadata-programming.md) — Implements techniques for inspecting and manipulating class structures and metadata at runtime.

### Part of an Awesome List

- [Data Processing and Machine Learning](https://awesome-repositories.com/f/awesome-lists/ai/data-processing-and-machine-learning.md) — Enables execution of distributed relational operations and machine learning algorithms across compute clusters. ([source](https://www.scala-lang.org/))
- [Scripting and CLI](https://awesome-repositories.com/f/awesome-lists/devtools/scripting-and-cli.md) — Provides tools for building low-configuration shell scripts and command-line interfaces. ([source](https://www.scala-lang.org/))

### Web Development

- [Full-Stack Web Development](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/full-stack-frameworks/full-stack-web-development.md) — Facilitates full-stack development by sharing type-safe data models and logic between the backend and frontend. ([source](https://www.scala-lang.org/))
- [HTTP Client Requests](https://awesome-repositories.com/f/web-development/http-client-requests.md) — Includes capabilities for sending HTTP requests to retrieve or send data across the web. ([source](https://docs.scala-lang.org/))
