Skip to content

Introduction

Uni — Essential Scala Utilities, refined for Scala 3 with minimal dependencies.

Uni provides small, reusable building blocks that complement the Scala standard library. It consolidates foundational utilities from the wvlet/airframe project into a single, cohesive library.

What is Uni?

Uni provides:

  • Design - Object wiring with lifecycle management
  • Logging - Structured logging with source code location tracking
  • Serialization - JSON parsing/generation and MessagePack binary format
  • HTTP Client - Cross-platform client with retry and streaming support
  • Reactive Streams - Rx-based operators for async data flows
  • Control Flow - Retry logic, circuit breakers, and resource management
  • CLI Utilities - Terminal styling, progress bars, and command launching
  • Type Introspection - Compile-time reflection with Surface

Design Philosophy

uni follows these principles:

  1. Minimal Dependencies - Core functionality without heavy external dependencies
  2. Cross-Platform - Works on JVM, Scala.js, and Scala Native
  3. Scala 3 First - Modern Scala 3 syntax and features
  4. Composable - Small, focused utilities that combine well
  5. Production Ready - Battle-tested code from the Airframe ecosystem

Module Structure

uni — Core Utilities

ModuleDescription
DesignObject wiring with lifecycle management
LoggingStructured logging with source code location tracking
JSONJSON parsing and generation
MessagePackBinary serialization format
SurfaceCompile-time type introspection
HTTPHTTP client with retry and streaming support
RxReactive streams and async data flows
ControlRetry logic, circuit breakers, and caching
CLITerminal styling, progress bars, and command launching

uni-agent — LLM Agent Framework

ModuleDescription
LLM AgentCore agent abstraction for AI workflows
Chat SessionsConversation state management
Tool IntegrationFunction calling and external tools
AWS BedrockBedrock chat model integration

Next Steps

Released under the Apache 2.0 License.