# BoundaryML/baml

The programming language for agents

Repository: https://github.com/BoundaryML/baml
Canonical: https://ross.abutalabs.com/products/baml
Homepage: https://boundaryml.com/explore
Language: Rust
License: Apache-2.0
License Family: permissive
Topics: llm, boundaryml, guardrails, structured-data, programming-language
Last push: 2026-08-27T00:02:33+00:00

## Health v2 (maintenance only)
Score: 90/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 87, longevity 75
- inputs: {"age_days": 1062, "days_push": 7, "days_rel": 8, "gap_med": 0, "n_releases_24m": 362}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 9078, forks 488 (observed 2026-08-28T04:10:28.257978+00:00)

## What it is
BAML is a domain-specific programming language for building LLM agents, with a Rust-like type system, typed errors, built-in tests/evals, and an agent stdlib. It compiles fast and can be called incrementally from TypeScript, Python, Go, C#, Java, and Rust.

## Use cases
- define type-safe llm functions with structured output
- build ai agents with fewer mistakes
- add guardrails to llm calls
- write evals and tests for prompts
- call llm functions from python or typescript
- parse structured data from llm responses

## When to choose
- you want strongly typed structured outputs from LLMs
- you are building agents and need built-in testing and evals
- you want a language-agnostic LLM layer callable from TS, Python, Go, Java, or Rust

## When to avoid
- you prefer staying entirely in your host language without a DSL
- you need a general-purpose programming language rather than an LLM-focused one
- your project has no LLM or agent components

## Facets
- artifact type: library
- maturity: active
- function: programming-language, llm-inference, agent-framework, prompt-engineering, type-system, testing
- domain: large-language-models, programming-languages, developer-tools
- platform: cross-platform, python, rust, cli
- tags: llm, structured-output, guardrails, agents, dsl, type-safe, evals, ai-agents, nodejs

## Member repositories
- BoundaryML/baml (main) score 90

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:28.257978+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:24:00.963160+00:00, confidence not recorded.
  - readme: https://github.com/BoundaryML/baml (fetched 2026-08-28T04:10:28.257978+00:00, sha ce37f68dbd39)
  - registry_crates: https://crates.io/api/v1/crates/baml (fetched 2026-08-29T08:23:51.407813+00:00, sha 322db1a094e2)
- Data as of 2026-08-30T08:39:29.467469+00:00.
