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/tap/fatou
  • npm: npm install -g fatou-cli (bundles a prebuilt binary)
  • PyPI: uv tool install fatou/pipx install fatou
  • AUR (Arch Linux): paru -S fatou-bin (or any other AUR helper)
  • NixOS: the fatou package is available in the Nixpkgs repository
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Fatou extension (Marketplace, Open VSX); also works in Positron

Install Script

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://github.com/jolars/fatou/releases/latest/download/fatou-installer.sh | sh

For Windows PowerShell:

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

Usage

# Print the CST (`fatou parse -` reads stdin)
fatou parse file.jl

# Format to stdout (`fatou format -` reads stdin)
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. Fatou walks up from the file's directory to find one, stopping at the repository root, then falls back to $FATOU_CONFIG and to a global user config at ~/.config/fatou/fatou.toml.

Editor Integration

The language server (fatou lsp) runs over stdio and provides a broad set of features: completion (including the REPL's LaTeX and emoji input sequences, so \alpha inserts α), hover, go-to-definition, find references and document highlights, rename (of symbols, and of files and folders — moving a file rewrites the include paths that name it), 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). It checks your Project.toml and Manifest.toml themselves too, and navigates an open Project.toml's dependency names, with each one's resolved version shown as an inlay hint.

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

Library Crates

The parser and formatter are published as standalone, wasm-compatible crates for embedding in other tools:

  • fatou-parser: lossless CST parser, typed AST wrappers, and incremental reparser.
  • fatou-formatter: the formatting engine, with optional serde/schema features.

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.15.0.tar.gz (867.9 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.15.0-py3-none-win_arm64.whl (3.5 MB view details)

Uploaded Python 3Windows ARM64

fatou-0.15.0-py3-none-win_amd64.whl (3.8 MB view details)

Uploaded Python 3Windows x86-64

fatou-0.15.0-py3-none-musllinux_1_2_x86_64.whl (3.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

fatou-0.15.0-py3-none-musllinux_1_2_aarch64.whl (3.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

fatou-0.15.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

fatou-0.15.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

fatou-0.15.0-py3-none-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

fatou-0.15.0-py3-none-macosx_10_12_x86_64.whl (3.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for fatou-0.15.0.tar.gz
Algorithm Hash digest
SHA256 c1585352f619212f87fd8efc9ce6c828ee0097b3dee8bf7b281fd3aca9b84be8
MD5 b7c1ec2cfc1a2ba6c9d376988e3e5b8e
BLAKE2b-256 1bc496db7c1f2076c7fc1356e73015bf9cafedfafb9ba67bdf2576270825e67c

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: fatou-0.15.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 3.5 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.15.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 8044c89f29c8799f7f39f933023e2851f35d38d4805f421f2a60f21e80f00ba9
MD5 2254d1c91103fad93d088f58e4d0d191
BLAKE2b-256 f69d56fadc31956053cf154d51dbd53c9e257c9ce9854d418346d2599a9bfc57

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: fatou-0.15.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.8 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.15.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 da98e6c60a1bacb91ab0c219235e9b1de4da54875c7ddfac0ecc8b1ca6d6c091
MD5 7abebf023a77dfff94d1528eef106678
BLAKE2b-256 17bbfa8726d52830c9a7fa8327813a819ff43791b1138d4045cb0725d36fd829

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.15.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 09c856532324f358e6a4259188b0690e068b450ce1f795b7ccd5a68d7bcf76d0
MD5 792ed8527ebfbea17f2dcdd29b83d9af
BLAKE2b-256 17559177b29fc63ee77a857d194261a473c6e114613200b7b1572aeb9ac3cede

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fatou-0.15.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e624240474309f94c15232560920064abfe6027e378aff5f25b11c1ac6af3c94
MD5 ebd4130362f896a561087215866c9d56
BLAKE2b-256 9336ac9baba718165a4bfe26321c39147ed6b14b57d98b87f004247476b9dc05

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.15.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 efb5095c350a58d922761d19bbaea9fb5d5ddbcbdd90ada2abc7a543ab4ac1a2
MD5 34fb8e4e4dd9d4c0c952adc6f98c323b
BLAKE2b-256 81f8d384efb2fcfd44b7cbcf249b93580395cacb5c27bf606e6851860628b897

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fatou-0.15.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b227b88f230232f7faef84a3c09b858b6b265d7fde3b6938ca2e6b5b6b384b6d
MD5 52e5fc5809d9836de247ee5bcf7eab51
BLAKE2b-256 edf73a26af14810ca09b37cde7b2e2b2d6c4800fc30e7986b7be49c539b9813b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fatou-0.15.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 462b51b5d30042e50296cac98c927c33f11c32b682f2d749c8e06a32ba4384de
MD5 ad8fc57b23c8148c67dd49d6b065f0c1
BLAKE2b-256 729804fd620e083cf646e212be1432d3a566d95290b6762c9d5832211eda9e6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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.15.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.15.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6bcc34a7f6a6c8c5cf6fce6f9f2909e6cf50b7a349610f753e9fef1a0e2350b8
MD5 2a240f473dd2fb1d6462897126352fda
BLAKE2b-256 7d40afc6ff9b443dc94fcc4b70a8f23bcfb22c01550bb0384a88180c2572a85c

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.15.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