Current section

Files

Jump to
libero gleam.toml
Raw

gleam.toml

name = "libero"
version = "7.0.0"
description = "Typed wire-contract generation, ETF/JSON codecs, and decoder generation for Gleam"
licences = ["MIT"]
repository = { type = "github", user = "pairshaped", repo = "libero-gleam" }
links = [
{ title = "llms.txt", href = "https://raw.githubusercontent.com/pairshaped/libero-gleam/master/llms.txt" },
]
[[documentation.pages]]
title = "Contract Boundary"
path = "reference/contract-boundary.html"
source = "./pages/reference/contract-boundary.md"
[[documentation.pages]]
title = "ETF Wire Protocol"
path = "protocol/etf-wire-protocol.html"
source = "./pages/protocol/etf-wire-protocol.md"
[[documentation.pages]]
title = "JSON Wire Protocol"
path = "protocol/json-wire-protocol.html"
source = "./pages/protocol/json-wire-protocol.md"
[[documentation.pages]]
title = "Wire Type Identity"
path = "protocol/wire-type-identity.html"
source = "./pages/protocol/wire-type-identity.md"
target = "erlang"
[dependencies]
gleam_stdlib = ">= 0.69.0 and < 2.0.0"
glance = "~> 6.0"
simplifile = "~> 2.0"
glexer = ">= 2.4.0 and < 3.0.0"
gleam_crypto = ">= 1.6.0 and < 2.0.0"
gleam_json = ">= 3.1.0 and < 4.0.0"
[dev-dependencies]
glinter = ">= 2.19.0 and < 3.0.0"
gleeunit = "~> 1.0"
gleam_erlang = "~> 1.0"
birdie = ">= 2.0.0 and < 3.0.0"
[tools.glinter]
stats = true
warnings_as_errors = true
include = ["src/"]
[tools.glinter.rules]
# Libero's public API is consumed from GENERATED code in consumer
# packages (dispatch modules and per-module client stubs under each
# consumer's src/*/generated/libero/ tree). The linter can't see those
# call sites from inside lib/libero, so it would flag every public
# type and function as unused. Turn off the check globally for the
# library.
unused_exports = "off"
[tools.glinter.ignore]
# Encode functions use let assert for request_id range validation.
# These are internal guards on trusted values, not user boundaries.
"src/libero/etf/wire.gleam" = ["assert_ok_pattern"]
"src/libero/json/wire.gleam" = ["assert_ok_pattern", "thrown_away_error"]
# Type resolver and walker use let assert on known-safe destructures
# (the type was already parsed) and String error types for codegen
# error messages where a custom type adds no value.
"src/libero/glance_type_resolver.gleam" = ["stringly_typed_error"]
"src/libero/walker.gleam" = ["assert_ok_pattern", "thrown_away_error"]
# Public facade uses String output because it generates source files.
"src/libero.gleam" = ["stringly_typed_error"]