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 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.17.0

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.17.0
File Size Uploaded
arity-0.17.0.tar.gz 1.1 MB Details

Built distributions (wheels)

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

Total release size:38.0 MB

Release files / arity-0.17.0.tar.gz

Download URL arity-0.17.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
7364fcd0f3e7903e86f7bf41a8fafccbc3c0764f6dbf899311fb668b7d974876
BLAKE2b-256 checksum
How to use checksums
3019a1bbdd08751b8e78a8a1693a178c4cef236001f25d92e303c0b47f9b1c2d
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-win_arm64.whl
Size 4.5 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
bff37e48b6ed408a3eed94cf962fdc8becff4b81ef41ba9a241facd794af6042
BLAKE2b-256 checksum
How to use checksums
25a32df6c0685405471bb8cba4a15cb7fc18f1cb3942903e0d18307677308455
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-win_amd64.whl
Size 4.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
0f90cabf478ea7ece748af301301d334ceffceff0125eeb413c0f26ee59366eb
BLAKE2b-256 checksum
How to use checksums
2b075366014f54a7a2e9b1e89341007eff3e97dd103245d02aa000ce048033f0
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-musllinux_1_2_x86_64.whl
Size 4.9 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
43c39bc64afd32a6fa5517880a52d494eb5e5ae93e497b757d756606eb15855e
BLAKE2b-256 checksum
How to use checksums
7e4a909b8e51422782255b840d6d2fbe7c57533c02196c54eda6b6768cd5a62a
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-musllinux_1_2_aarch64.whl
Size 4.5 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
404f443317520189d7cd8178585d4b08c4de6eab9a3e0b5850ef965e84725dc6
BLAKE2b-256 checksum
How to use checksums
f36af7cbffa3d45aa295bf0db2e843b937ca09cf0624ce775cf1dbc8c3ba2401
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.8 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
14c414b068a3790d731b32b8d32ea9da57b2510f599d49e18454ed048bf0e513
BLAKE2b-256 checksum
How to use checksums
8f399b07ed65e2cf31d9616da640a9231e84463f848358fe3856e6894cfd213f
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.5 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a9d7b93ae25109556a3305a4e81acdf562476bc0abf95aa32edd87ec9c18ae33
BLAKE2b-256 checksum
How to use checksums
08ded1f0e3bf55b42b5f2a6ec576dd3dc5ac6a2f62b2ddbb2d6465a719c135a2
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-macosx_11_0_arm64.whl
Size 4.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8690657d31e3b773cca03f15ab3e106c6069d825feb59b1ded9e8371f325c0d2
BLAKE2b-256 checksum
How to use checksums
bc0986e0bb36144a3f947a46d509d64182315cd93ea262a5b8c530a542a8aee0
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 7, 2026.

Transparency log

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

Download URL arity-0.17.0-py3-none-macosx_10_12_x86_64.whl
Size 4.6 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a3dee51877b57f01de3b4503b503b69ee347b459a487c1ae091d847c78bd4d7f
BLAKE2b-256 checksum
How to use checksums
2154a9c5aa8cb35e4cf9973d433330bb1f41a109e495f7fed2a714788debc7f6
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 7, 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

0.19.1

9 release files

0.19.0

9 release files

0.18.0

9 release files

This release

0.17.0 This release

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