Skip to main content

Arity

Build and Test Crates.io Open VSX VS Code PyPI version npm version

Arity is a language server, formatter, and linter for the R programming language, built in Rust on a lossless, incremental parser. It provides a fast, deterministic development experience that integrates with popular code editors and IDEs.

  • Formatter: deterministic, rule-based formatting toward the tidyverse style guide, with idempotent output and roxygen support.
  • Linter: correctness, readability, and performance rules, many with safe autofixes.
  • Language server: formatting, diagnostics with quick fixes, hover, completion, signature help, go-to-definition and references, rename, document and workspace symbols, semantic tokens, folding, and call hierarchy.

Installation

Arity is available from several sources:

  • crates.io: cargo install arity
  • Homebrew: brew install jolars/tap/arity
  • npm: npm install -g arity-cli (bundles a prebuilt binary)
  • PyPI: uv tool install arity/pipx install arity
  • Aqua: aqua install jolars/arity
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Arity extension (also works in Positron)
  • Arch Linux: pacman -S arity-bin (or arity) (from the AUR: arity-bin, arity)
  • NixOS: the arity package is available in the Nixpkgs repository

Install script

The install scripts are fetched from the latest release and download the Arity release asset for your platform, verifying its checksum and installing to a user-local directory by default. If you prefer, download and inspect the script before running it.

For macOS and Linux:

curl --proto '=https' --tlsv1.2 -LsSf \
    https://github.com/jolars/arity/releases/latest/download/arity-installer.sh | sh

For Windows PowerShell:

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/jolars/arity/releases/latest/download/arity-installer.ps1 | iex"

Set ARITY_INSTALL_DIR to change the destination, ARITY_TAG to pin a version, ARITY_LIBC (gnu or musl) to override the detected libc on Linux, and ARITY_VERIFY_CHECKSUM=false to skip checksum verification.

Formatter

To format your code, you can use:

  • arity format [file]
  • arity format --verify [file]
  • arity format --check <path> [<path> ...]

Linter

To lint your code, you can use:

  • arity lint <path> [<path> ...]

arity lint reads from stdin when given - (or when piped with no paths), and exits non-zero when it reports any findings.

Configuration

Arity reads an optional arity.toml, discovered by walking up from each file's directory to the repository root. Run arity init to scaffold a commented starter file. See the configuration reference for every key.

Editor integration

arity lsp starts a stdio-based language server offering formatting, diagnostics with quick fixes, hover, completion, signature help, go-to-definition and references, rename, document and workspace symbols, semantic tokens, folding, and call hierarchy.

The Arity extension for VS Code/Open VSX (and Positron) bundles the binary and starts the server automatically. For Neovim, Helix, and other editors, see the editor setup guide.

Pre-commit hook

arity-pre-commit provides pre-commit hooks for linting and formatting. It installs a prebuilt binary wheel from PyPI, so no Rust toolchain or R installation is required:

repos:
  - repo: https://github.com/jolars/arity-pre-commit
    # arity version
    rev: v0.13.0
    hooks:
      # Lint .R files
      - id: arity-lint
      # Format the same files in place
      - id: arity-format

GitHub Actions

arity-action installs arity and runs format and lint checks in CI:

jobs:
  arity:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: jolars/arity-action@v1

Crates

The parsing and formatting engines are published as standalone crates for use in other tools: arity-parser (lossless CST parser, typed AST wrappers, incremental reparser) and arity-formatter (the formatter, with optional serde/schemars support for embedders). Both are versioned independently of the CLI.

Acknowledgements

The core architecture of Arity is entirely based on rust-analyzer, using salsa for incremental computation and rowan for lossless syntax trees. Arity also owes a great debt to air, on which it is heavily inspired and from which it has borrowed tests, rules, and formatting style. It is also inspired by jarl and has borrowed rules from it as well as some of its architecture.

Documentation

Full documentation lives at arity.cc:

Release files for arity 0.19.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arity 0.19.1
File Size Uploaded
arity-0.19.1.tar.gz 1.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for arity 0.19.1
File
arity-0.19.1-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
arity-0.19.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
arity-0.19.1-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
arity-0.19.1-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
arity-0.19.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
arity-0.19.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
arity-0.19.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
arity-0.19.1-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size:41.7 MB

Release files / arity-0.19.1.tar.gz

Download URL arity-0.19.1.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
74b7b3ea903cd1c499f9fe25783eda0eec6bef8c5e001b5bc51dce05f0eee16a
BLAKE2b-256 checksum
How to use checksums
724d4d43644176d32c02beefe779898faa3891d9e53f30bdfb02f310f9f206f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-win_arm64.whl

Download URL arity-0.19.1-py3-none-win_arm64.whl
Size 4.9 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
b76e86be3e107cebdf820704f6374e8faa865d37e660c784897723e83779b180
BLAKE2b-256 checksum
How to use checksums
4b42704c19b267404031f602d8b39282408b5b2cb267b21b9c2f4d60a6646b43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-win_amd64.whl

Download URL arity-0.19.1-py3-none-win_amd64.whl
Size 5.1 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
b2610ad970be4546118d0056e5b0c521197a115dad2fd69fdeb65e6a3922ae18
BLAKE2b-256 checksum
How to use checksums
17b6f537dd9eb2cf9df01aed1b6718316f16f4ef3d2ca8326c27ca5990213151
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-musllinux_1_2_x86_64.whl

Download URL arity-0.19.1-py3-none-musllinux_1_2_x86_64.whl
Size 5.3 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
88aa96744717e3204adf3f65135018852c67d0c7d503a0a3348ec2fdf9175f89
BLAKE2b-256 checksum
How to use checksums
d4a4be8b7a8bb156209f3599513e7e23eb62d900586ba1e7ce5192265caa1fcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-musllinux_1_2_aarch64.whl

Download URL arity-0.19.1-py3-none-musllinux_1_2_aarch64.whl
Size 4.9 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
1be0b0a0ac269dbaf258af9ec299df328376c3515d0a8617b6f69d890623c480
BLAKE2b-256 checksum
How to use checksums
ad1b6963aec68295656ec8ea9a3c0db984044adedb31b1065bddab5733e7de19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL arity-0.19.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
5cde29b29f181a3f69824725aeebdf5bcb97520d88b3899e907922db71fb7503
BLAKE2b-256 checksum
How to use checksums
f4088a1317052f2fbadac9c73d3a7c2fe7ea420a072f4734b0f5c7280fc406dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL arity-0.19.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.9 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
f6a2146fbece4c2c8006c1af2bbfb1b3e7e3c1856030df2fb7c0dc5eed48e5bb
BLAKE2b-256 checksum
How to use checksums
eae0b79b45237b666f91fde4b8066198b9fbc7226dbcc7265d01e758d041b0c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-macosx_11_0_arm64.whl

Download URL arity-0.19.1-py3-none-macosx_11_0_arm64.whl
Size 4.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6111ce97b6e03de0d58e14f6d6114fbdb83d4d73546eff0111fc6ca8ae1cf8b7
BLAKE2b-256 checksum
How to use checksums
0bec59089f880f830fd763b82880d25f7ae0949dd20ea89dc9ea6dbcd5fe1202
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release files / arity-0.19.1-py3-none-macosx_10_12_x86_64.whl

Download URL arity-0.19.1-py3-none-macosx_10_12_x86_64.whl
Size 5.1 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
32d99c698c67ba2bd30d376900f8d5671de86a2cfb6e5651403f30351a622f45
BLAKE2b-256 checksum
How to use checksums
c0ed5acccb4eddf2291a9de6d84ab59f9c5a9adcc578349ddbb354cb50530079
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.

Transparency log

Release history Release notifications | RSS feed

0.22.0

9 release files

0.21.0

9 release files

0.20.0

9 release files

This release

0.19.1 This release

9 release files

0.19.0

9 release files

0.18.0

9 release files

0.14.0

9 release files

0.13.0

9 release files

0.12.0

9 release files

0.9.0

9 release files

0.8.0

9 release files

0.7.0

9 release files

0.6.0

9 release files

0.5.0

9 release files

0.4.0

9 release files

0.3.0

9 release files

0.2.0

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page