Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veralang-0.1.6.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veralang-0.1.6-py3-none-any.whl (910.2 kB view details)

Uploaded Python 3

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

Hashes for veralang-0.1.6.tar.gz
Algorithm Hash digest
SHA256 5b51a7c4dd4371beabf9126cf0699c5cf32ef52e9166d421dbfa4ff8b8410e10
MD5 b59b81fbbc59b3e43ed16d00b7271e0f
BLAKE2b-256 7d44b2b7eda266eda0fa4671ecfffb1caa06a8057d0cbac6c5fd9dafbbd9b587

See more details on using hashes here.

Provenance

The following attestation bundles were made for veralang-0.1.6.tar.gz:

Publisher: release.yml on aallan/vera

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for veralang-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 30e4264adf9eb63621234eb0a286f9f0749b4ae5f75647ef308c15d0ec5f1ea2
MD5 cec52ecf2deca25b8a5d213db92220b4
BLAKE2b-256 d074128425878dd818e690c5180ccf4828783b4ac2c31e6c81d615d6d38b574f

See more details on using hashes here.

Provenance

The following attestation bundles were made for veralang-0.1.6-py3-none-any.whl:

Publisher: release.yml on aallan/vera

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page