Vera: a programming language designed for LLMs, with full contracts, algebraic effects, and typed slot references
Project description
Vera
Vera is a programming language designed for large language models to write. It has mandatory contracts, algebraic effects, typed slot references instead of variable names, and a compiler that emits WebAssembly.
Full documentation, examples, and the language specification are available at veralang.dev and in the GitHub repository.
Install a released version
Vera requires Python 3.11 or later. Create a virtual environment and install
the veralang distribution:
python -m venv .venv
source .venv/bin/activate
python -m pip install veralang
On Windows, activate the environment with .venv\Scripts\activate instead.
For editor and agent integration through the language server, install the LSP
extra:
python -m pip install "veralang[lsp]"
The distribution is named veralang, but the installed command remains
vera, and Python code still imports it as import vera. Do not run pip install vera: that name belongs to an unrelated
ERAV citizen-science project on PyPI. The wheel ships the compiler and the
vera command only — the bundled examples, the conformance suite, and the
specification live in the GitHub repository.
Install from GitHub source
The source route provides the full environment — the examples, conformance
programs, and specification alongside the toolchain (the recommended setup for
agents learning the language) — and remains the route for compiler
development, unreleased changes, and testing the current main branch:
git clone https://github.com/aallan/vera.git
cd vera
python -m venv .venv
source .venv/bin/activate
python -m pip install -e .
Use python -m pip install -e ".[lsp]" for the language server or
python -m pip install -e ".[dev]" when working on the compiler.
Try it
public fn safe_divide(@Int, @Int -> @Int)
requires(@Int.1 != 0)
ensures(@Int.result == @Int.0 / @Int.1)
effects(pure)
{
@Int.0 / @Int.1
}
public fn main(-> @Int)
requires(true)
ensures(@Int.result == 5)
effects(pure)
{
safe_divide(2, 10)
}
vera check program.vera
vera verify program.vera # proves main returns 5 from safe_divide's contract
vera run program.vera # prints 5
See the CLI cookbook, language reference, supported-platform policy, and issue tracker for more.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file veralang-0.1.6.tar.gz.
File metadata
- Download URL: veralang-0.1.6.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b51a7c4dd4371beabf9126cf0699c5cf32ef52e9166d421dbfa4ff8b8410e10
|
|
| MD5 |
b59b81fbbc59b3e43ed16d00b7271e0f
|
|
| BLAKE2b-256 |
7d44b2b7eda266eda0fa4671ecfffb1caa06a8057d0cbac6c5fd9dafbbd9b587
|
Provenance
The following attestation bundles were made for veralang-0.1.6.tar.gz:
Publisher:
release.yml on aallan/vera
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
veralang-0.1.6.tar.gz -
Subject digest:
5b51a7c4dd4371beabf9126cf0699c5cf32ef52e9166d421dbfa4ff8b8410e10 - Sigstore transparency entry: 2207128351
- Sigstore integration time:
-
Permalink:
aallan/vera@a4bee05d9ed5417ca4ee9738de64988d1e896392 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/aallan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4bee05d9ed5417ca4ee9738de64988d1e896392 -
Trigger Event:
push
-
Statement type:
File details
Details for the file veralang-0.1.6-py3-none-any.whl.
File metadata
- Download URL: veralang-0.1.6-py3-none-any.whl
- Upload date:
- Size: 910.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30e4264adf9eb63621234eb0a286f9f0749b4ae5f75647ef308c15d0ec5f1ea2
|
|
| MD5 |
cec52ecf2deca25b8a5d213db92220b4
|
|
| BLAKE2b-256 |
d074128425878dd818e690c5180ccf4828783b4ac2c31e6c81d615d6d38b574f
|
Provenance
The following attestation bundles were made for veralang-0.1.6-py3-none-any.whl:
Publisher:
release.yml on aallan/vera
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
veralang-0.1.6-py3-none-any.whl -
Subject digest:
30e4264adf9eb63621234eb0a286f9f0749b4ae5f75647ef308c15d0ec5f1ea2 - Sigstore transparency entry: 2207128362
- Sigstore integration time:
-
Permalink:
aallan/vera@a4bee05d9ed5417ca4ee9738de64988d1e896392 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/aallan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4bee05d9ed5417ca4ee9738de64988d1e896392 -
Trigger Event:
push
-
Statement type: