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

Uploaded Python 3Windows ARM64

fatou-0.14.0-py3-none-win_amd64.whl (3.7 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

fatou-0.14.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.14.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

fatou-0.14.0-py3-none-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

fatou-0.14.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.14.0.tar.gz.

File metadata

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

File hashes

Hashes for fatou-0.14.0.tar.gz
Algorithm Hash digest
SHA256 b4374d5b34a98927ed4eca1311cb88dda5a69d4f240cdd02365df24f2d7c227c
MD5 37e066fb16e64850b184e7bda3b4b722
BLAKE2b-256 429293109c488f1dcc7f82d5a1710e6ba9365101e20e44357dcb9b3fffdbb9f2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: fatou-0.14.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.14.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 ca71504cfa27f24c0561ad19a05124f96e1d67358a09907dd083591c294742de
MD5 51da77bb7260ed1666fb9978c7531e59
BLAKE2b-256 7f8107a4a28d41a17afd91396c9b57b93d5ee94e2660b424fcbeaff1a6cba2be

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: fatou-0.14.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.7 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.14.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 457726dabb6dac86e565ce3f1534b632b47bfc03c2cdfe7786da1bed6ac75bcb
MD5 289460729dad8a7a63858e0a33185b8d
BLAKE2b-256 0a7eeaa038904759dc8ccdccf21b4e095a6efc64fba35446b321b6e6cb4d6416

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fatou-0.14.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d38ba0af0fceefd8c6b8691ee1534aeb69817988e383b54c5098b4c7e2f83f9
MD5 c21145631b34b8738ec90c299a22ab02
BLAKE2b-256 5abee066c44e2d635ffdf93e5a1de5d4997f0f844130f8ea843150ab0e4de191

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fatou-0.14.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 67a6881f563b2a693ae47154f6ed4e2f388ee33467711847ad1cce4b3d4db6a0
MD5 2ca4e22319658b18474bda9ecf0e1a23
BLAKE2b-256 1ca43d00c794eff3cbe714e5dad8d5d4a23ad6fd8a6fc8686b083805ec0752ee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fatou-0.14.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6830f9b0c4241f760a6f73d164ed0347875fd62fa3760fd8f79a29b1a4ea8a5
MD5 a5895dabdcf3b622bfa8d5049930b4db
BLAKE2b-256 f87ce68eb4198e29cc79fdf4feb84e6c651fb2a0659d5894fe31780b8be80dae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fatou-0.14.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a9860936e214d16bc8396e0a0420982a686549875946a6cc672db90b4f9696b6
MD5 68a4cb0460c12d33665e9eeb6ecf34be
BLAKE2b-256 24095dcb5d9be478680858b86b3783e3511f4c3014ad6aa2b29c283218e88aa7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fatou-0.14.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55deacf6f0cabca0f35ebf44c2e9a5f8ed246d2eb2c1f1cfb2cc19fb52f13948
MD5 5ed094b81aa351b3f8c0d16b9e8fda5b
BLAKE2b-256 5867fee932d345aa4b6f5c6fb520d2701250201dd24c318368c2c4f3650873ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fatou-0.14.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d4846cdab16149fd355acc1fb75cf02cbb81b8509100ceaab3ba67b62c7c68d4
MD5 1510f29e23e6100a39a1f05c669d6c84
BLAKE2b-256 d62b2aafaeedb03f88b240ebb71e31cf093a59d059e3eac4feffbe8cb7c201a6

See more details on using hashes here.

Provenance

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