Packages

Session types for Gleam: two-party protocols checked at compile time, a specification layer that projects and generates them, and a gen_statem driver

Current section

Files

Jump to
pacta gleam.toml
Raw

gleam.toml

name = "pacta"
version = "0.1.0"
target = "erlang"
description = "Session types for Gleam: two-party protocols checked at compile time, a specification layer that projects and generates them, and a gen_statem driver"
licences = ["LGPL-3.0-or-later"]
repository = { type = "github", user = "byzantine-systems", repo = "pacta" }
# links = [{ title = "Website", href = "" }]
# For a full reference of all the available options, you can have a look at
# https://gleam.run/writing-gleam/gleam-toml/.
[dependencies]
gleam_stdlib = ">= 0.44.0 and < 2.0.0"
gleam_erlang = ">= 1.3.0 and < 2.0.0"
# Only `pacta/protocol_machine` needs this, to lower a protocol position onto a
# `gen_statem`. Nothing else in the package imports it.
#
# TODO: tighten to ">= 2.0.0 and < 3.0.0" once eparch 2.0.0 (the release that
# drops the session layer this package now owns) is published to Hex.
eparch = ">= 1.0.0 and < 3.0.0"
[dev_dependencies]
gleeunit = ">= 1.0.0 and < 2.0.0"
# Only the generator driver in test/ uses this. Gleam cannot scope a
# dependency to part of a package, and writing files is not something the
# library itself ever does, so it lives here rather than in [dependencies].
simplifile = ">= 2.0.0 and < 3.0.0"
argv = ">= 1.0.0 and < 2.0.0"
[documentation]
pages = [
{ title = "Examples", path = "examples/readme.html", source = "./examples/README.md" },
{ title = "Session Types", path = "docs/session_types.html", source = "./docs/Session_Types.md" },
{ title = " ", path = "#", source = "" },
]