Skip to main content

Fatou

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

Fatou is a language server, formatter, and linter for Julia that never has to run Julia itself.

It parses Julia once and serves three tools from that tree:

  • Formatter (fatou format): deterministic, rule-based layout.
  • Linter (fatou lint): diagnostics with source snippets.
  • Language server (fatou lsp): both, live in your editor.

Written in Rust, Fatou is fast, safe, and easy to embed in editors and tooling. The architecture follows rust-analyzer: a lossless rowan CST that reconstructs the input byte-for-byte, salsa for incremental recomputation, and lsp-server for the language-server transport. It is named after the French mathematician Pierre Fatou, whose Fatou set is the complement of the Julia set.

Installation

Fatou is available from several sources:

  • crates.io: cargo install fatou
  • Homebrew: brew install jolars/fatou/fatou
  • npm: npm install -g fatou-cli (bundles a prebuilt binary)
  • PyPI: uv tool install fatou/pipx install fatou
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Fatou extension (Marketplace, Open VSX); also works in Positron

If you prefer a one-liner installer that picks the right release artifact for your platform, you can use the installer scripts below. These scripts are fetched directly from this repository and then download the latest matching Fatou release asset for your platform, 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://raw.githubusercontent.com/jolars/fatou/refs/heads/main/scripts/fatou-installer.sh | sh

For Windows PowerShell:

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/jolars/fatou/refs/heads/main/scripts/fatou-installer.ps1 | iex"

Usage

# Print the CST (reads stdin if no file)
fatou parse file.jl

# Format to stdout (reads stdin if omitted)
fatou format file.jl

# Verify formatting without writing—exits non-zero if anything would change
fatou format --check src/

# Lint—exits non-zero if there are any findings
fatou lint src/

# Run the language server over stdio
fatou lsp

Configuration lives in fatou.toml: [format] sets line and indent widths, [lint] selects or ignores rules.

Editor Integration

The language server (fatou lsp) runs over stdio and provides a broad set of features: completion, hover, go-to-definition, find references and document highlights, rename, document and workspace symbols, call and type hierarchy, signature help, code actions, folding and selection ranges, document links, and semantic tokens, alongside formatting (whole-document and range) and diagnostics (push and pull).

The Fatou extension for VS Code and Open VSX (Marketplace, Open VSX) bundles the binary and starts the server automatically; it also works in Positron. See editors/code for the extension, or the editor setup guide for Neovim and other editors.

Integrations

Run format and lint checks in GitHub Actions with fatou-action, which installs a prebuilt, checksum- and provenance-verified binary:

- uses: jolars/fatou-action@v1

Or as pre-commit hooks with fatou-pre-commit:

repos:
  - repo: https://github.com/jolars/fatou-pre-commit
    # fatou version
    rev: v0.7.0
    hooks:
      - id: fatou-lint
      - id: fatou-format

Documentation

See https://fatou.dev/ for the full documentation.

Contributing

See CONTRIBUTING.md.

License

MIT, see LICENSE.

Download files

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

Source Distribution

fatou-0.10.0.tar.gz (582.6 kB view details)

Uploaded Source

Built Distributions

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

fatou-0.10.0-py3-none-win_arm64.whl (3.1 MB view details)

Uploaded Python 3Windows ARM64

fatou-0.10.0-py3-none-win_amd64.whl (3.3 MB view details)

Uploaded Python 3Windows x86-64

fatou-0.10.0-py3-none-musllinux_1_2_x86_64.whl (3.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

fatou-0.10.0-py3-none-musllinux_1_2_aarch64.whl (3.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

fatou-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

fatou-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

fatou-0.10.0-py3-none-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

fatou-0.10.0-py3-none-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file fatou-0.10.0.tar.gz.

File metadata

  • Download URL: fatou-0.10.0.tar.gz
  • Upload date:
  • Size: 582.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fatou-0.10.0.tar.gz
Algorithm Hash digest
SHA256 ab49a7736d1ede353d612ea83f6251a9ebf0e0f0dbabf051b7c6602b5610ee74
MD5 dcdb90846e1e02ffd6ce481f4c9a4fd6
BLAKE2b-256 1251e144209647e459ac79e24fc47e0b3254abde772865c86d0ba16ca520722b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0.tar.gz:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: fatou-0.10.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fatou-0.10.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d764acc9df249cac8cc3f543a08beb546d6007259f713e706005968450b7e2cd
MD5 4c999b5a01055f5f76e6cea8c7fce0a1
BLAKE2b-256 9f141264bea3793977287737559539ea002688ce3eda2064a446fddeedef84d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-win_arm64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: fatou-0.10.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fatou-0.10.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2a2ee8e5c2b8ed61aed38a6909644e01a9d3257f5b638d9fde763227c199d9a4
MD5 8e2a3233b0564ddcb37bc6596ae21c1c
BLAKE2b-256 063bdfc93f922f56a6ce58f8677f8773f2aa537d2583659cd01c06e82b69bc1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-win_amd64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.10.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4365e33427619fedd75a8b4c5ab5c0fde493c896392e146b2adcf261f7bbf4bb
MD5 3dfde4c15530ce880c4ad89c5bed84d4
BLAKE2b-256 0992c2465ffec8a3ac0436d5a4ebdee8573d054609711074915d8f8f620c6ca9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fatou-0.10.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e550b76d48ad86eacec4904440df215bb07af9ba933537702a52a033da7fa039
MD5 a55cebc750e290cb05d24b2ed947275c
BLAKE2b-256 35385a0770f5ce85ce3a1251b6c95504ecc4611fbd7b98fb5aa8383fb3711138

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-musllinux_1_2_aarch64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c517b4272773a5d7254d14dd99dabb945acf4ba0fd1bfb6f84d4a7a216742ded
MD5 3737fbdd7565be9d22334334b0ee7d9c
BLAKE2b-256 e2190fdaf51d99a6f45a689ddc1c6a931be0058787660e35f6bab41e7d3ce6fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fatou-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd4fafe11f7d5b4190393bb3ec4edeac4453fcc411f31535c690d0c054b761b0
MD5 5cc4fc2e981f983f3dcc8a5985973db8
BLAKE2b-256 df5060175be7ee025a86ee76650982599d5164d89410c62c9cf450e33f9cebc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fatou-0.10.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a785fc8ac94af4635a946635478cad0687b80eab9d2a159cfb0d9cfdb699d59
MD5 43c0abb18b57748221720a71135a684f
BLAKE2b-256 8bd8f4cff4e744ab39b9d35bcd8d40e072bd97e0bcc6069c0f96445b73ce5ea2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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

File details

Details for the file fatou-0.10.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.10.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ab46db503bdc93b95c4c80628b174537445c4347c07abf98385b9cd92413d624
MD5 0aa9a45811fd8e4cfb9f49a70023d174
BLAKE2b-256 48353d2fe66cdfc19e7bd2fc54e84b90bd58d536d7bb9fdcde9a2dd314bc11c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.10.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on jolars/fatou

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 Sentry Error logging StatusPage Status page