# Uni > Essential Scala 3 utilities for JVM, Scala.js, and Scala Native Essential Scala 3 utilities for JVM, Scala.js, and Scala Native: dependency injection (Design), logging, JSON/MessagePack, Rx, HTTP client/server, RPC, MCP servers, and a testing framework. The Scala 3 successor of Airframe. Start with /uni/guide/for-ai-agents.md for canonical imports, an Airframe migration table, and common mistakes. ## Table of Contents ### The Uni Book - [The Uni Book](https://wvlet.org/uni/book.md) - [Foreword](https://wvlet.org/uni/book/foreword.md) ### Part I — Getting Started - [1. Getting Started](https://wvlet.org/uni/book/ch01-00-getting-started.md) - [1.1 Installation](https://wvlet.org/uni/book/ch01-01-installation.md) - [1.2 Hello, Uni!](https://wvlet.org/uni/book/ch01-02-hello-uni.md) ### Part II — Building a CLI Application - [2. A URL Fetcher](https://wvlet.org/uni/book/ch02-00-cli-app.md) ### Part III — Core Concepts - [3. Wiring with Design](https://wvlet.org/uni/book/ch03-00-design.md) - [4. Testing with UniTest](https://wvlet.org/uni/book/ch04-00-testing.md) - [5. Logging That Finds You](https://wvlet.org/uni/book/ch05-00-logging.md) - [6. Data In, Data Out — JSON & MessagePack](https://wvlet.org/uni/book/ch06-00-data.md) ### Part IV — Async & Control Flow - [7. Rx, the Composable Stream](https://wvlet.org/uni/book/ch07-00-rx.md) - [8. Living With Failure — Retry, Circuit Breakers, Resources](https://wvlet.org/uni/book/ch08-00-control.md) ### Part V — HTTP & RPC - [9. HTTP Clients and Servers](https://wvlet.org/uni/book/ch09-00-http.md) - [10. Typed RPC](https://wvlet.org/uni/book/ch10-00-rpc.md) ### Part VI — Cross-Platform - [11. One Codebase, Three Runtimes](https://wvlet.org/uni/book/ch11-00-cross-platform.md) ### Part VII — Scala.js & the JS Ecosystem - [12. Calling NPM Modules from Scala.js](https://wvlet.org/uni/book/ch12-00-npm-facades.md) - [13. Bundling with Vite](https://wvlet.org/uni/book/ch13-00-vite.md) ### Part VIII — Scala Native & the C/Rust World - [14. Calling C from Scala Native](https://wvlet.org/uni/book/ch14-00-calling-c.md) - [15. Exposing Scala Native to C and Rust](https://wvlet.org/uni/book/ch15-00-exposing-native.md) ### Part IX — Capstone - [16. Capstone — A Bookmarks Service](https://wvlet.org/uni/book/ch16-00-capstone.md) ### Appendices - [Appendix A: Scala 3 Syntax Notes for This Book](https://wvlet.org/uni/book/appendix-a-scala3.md) - [Appendix B: Uni and Airframe — History and Relationship](https://wvlet.org/uni/book/appendix-b-airframe.md) - [Appendix C: Glossary](https://wvlet.org/uni/book/appendix-c-glossary.md) ### Getting Started - [Introduction](https://wvlet.org/uni/guide.md) - [Installation](https://wvlet.org/uni/guide/installation.md) - [Design Principles](https://wvlet.org/uni/guide/principles.md) - [Uni for AI Agents](https://wvlet.org/uni/guide/for-ai-agents.md): How AI coding agents should pick and use Uni, the Scala 3 utility library for dependency injection, logging, JSON/MessagePack, HTTP, RPC, MCP servers, and testing on JVM, Scala.js, and Scala Native. ### Core - [Core Utilities](https://wvlet.org/uni/core.md) - [Design](https://wvlet.org/uni/core/design.md) - [UniTest](https://wvlet.org/uni/core/unitest.md) - [Logging](https://wvlet.org/uni/core/logging.md) - [JSON Processing](https://wvlet.org/uni/core/json.md) - [MessagePack Serialization](https://wvlet.org/uni/core/msgpack.md) - [Weaver](https://wvlet.org/uni/core/weaver.md) - [Type Introspection](https://wvlet.org/uni/core/surface.md) - [IO](https://wvlet.org/uni/core/io.md) - [FileSystem](https://wvlet.org/uni/core/filesystem.md) - [Result](https://wvlet.org/uni/core/result.md) - [Utilities](https://wvlet.org/uni/core/utilities.md) ### Control Flow - [Control Flow](https://wvlet.org/uni/control.md) - [Retry Logic](https://wvlet.org/uni/control/retry.md) - [Circuit Breaker](https://wvlet.org/uni/control/circuit-breaker.md) - [Rate Limiter](https://wvlet.org/uni/control/rate-limiter.md) - [Caching](https://wvlet.org/uni/control/cache.md) - [Resource Management](https://wvlet.org/uni/control/resource.md) - [Background Task](https://wvlet.org/uni/control/background-task.md) ### HTTP - [HTTP Framework](https://wvlet.org/uni/http.md) - [HTTP Client](https://wvlet.org/uni/http/client.md) - [REST Server](https://wvlet.org/uni/http/server.md) - [Router](https://wvlet.org/uni/http/router.md) - [RPC](https://wvlet.org/uni/http/rpc.md) - [OpenAPI](https://wvlet.org/uni/http/openapi.md) - [Desktop Apps (Electron)](https://wvlet.org/uni/http/electron.md) - [Electron Tutorial: Setup from Scratch](https://wvlet.org/uni/http/electron-tutorial.md) - [Server-Sent Events](https://wvlet.org/uni/http/sse.md) - [WebSocket Client](https://wvlet.org/uni/http/websocket.md) - [HTTP Retry Strategies](https://wvlet.org/uni/http/retry.md) ### MCP - [Build Your Own MCP Server (stdio)](https://wvlet.org/uni/mcp.md) ### Reactive Streams - [Reactive Streams](https://wvlet.org/uni/rx.md) - [Rx Basics](https://wvlet.org/uni/rx/basics.md) - [Stream Operators](https://wvlet.org/uni/rx/operators.md) - [Rx Concurrency](https://wvlet.org/uni/rx/concurrency.md) ### CLI - [CLI Utilities](https://wvlet.org/uni/cli.md) - [Terminal Styling](https://wvlet.org/uni/cli/tint.md) - [Progress Indicators](https://wvlet.org/uni/cli/progress.md) - [Command Launcher](https://wvlet.org/uni/cli/launcher.md) ### Web UI (Scala.js) - [Web UI (RxElement)](https://wvlet.org/uni/dom.md) ### Build Tooling - [sbt-uni Plugin](https://wvlet.org/uni/build/sbt-uni.md) - [sbt-uni-playwright Plugin](https://wvlet.org/uni/build/sbt-uni-playwright.md) - [sbt-uni-crossproject Plugin](https://wvlet.org/uni/build/sbt-uni-crossproject.md) ### Other - [Uni Walkthrough](https://wvlet.org/uni/uni-walkthrough.md) - [uni-rx Concurrency Design Note](https://wvlet.org/uni/design/rx-concurrency.md)