Skip to main content

A fast, cross-platform multi-language linter and formatter

Project description

linthis

Crates.io PyPI License: MIT

A fast, cross-platform multi-language linter and formatter written in Rust.

Installation

From PyPI (Python users)

# Using pip
pip install linthis

# Using uv (recommended)
uv pip install linthis

From crates.io (Rust users)

cargo install linthis

Features

  • Single command for both linting and formatting
  • Multi-language support (Rust, Python, TypeScript, JavaScript, Go, Java, C++)
  • Auto-detection of project languages
  • Configurable exclusion patterns
  • Hierarchical configuration (built-in, user, project, CLI)
  • Format presets (Google, Airbnb, Standard)
  • Parallel file processing for performance

Usage

# Run both lint and format checks
linthis

# Lint only (no formatting)
linthis --check-only

# Format only (no linting)
linthis --format-only

# Specify files or directories
linthis src/main.rs src/lib.rs

# Check only staged files
linthis --staged

Configuration

Create .linthis.toml in your project root:

# Languages to check (omit for auto-detection)
languages = ["rust", "python"]

# Files to exclude
exclude = [
    "target/**",
    "node_modules/**",
    "*.generated.rs"
]

# Maximum cyclomatic complexity
max_complexity = 20

# Formatting preset
format_preset = "google"

Supported Languages

Language Linter Formatter
Rust clippy rustfmt
Python pylint, flake8 black
TypeScript eslint prettier
JavaScript eslint prettier
Go golint, go vet gofmt
Java checkstyle google-java-format
C++ cpplint, cppcheck clang-format

License

MIT

Project details


Download files

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

Source Distribution

linthis-0.0.1.tar.gz (41.5 kB view details)

Uploaded Source

Built Distributions

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

linthis-0.0.1-py3-none-win_amd64.whl (1.1 MB view details)

Uploaded Python 3Windows x86-64

linthis-0.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

linthis-0.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (986.5 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

linthis-0.0.1-py3-none-macosx_11_0_arm64.whl (934.4 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

linthis-0.0.1-py3-none-macosx_10_12_x86_64.whl (1.0 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file linthis-0.0.1.tar.gz.

File metadata

  • Download URL: linthis-0.0.1.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linthis-0.0.1.tar.gz
Algorithm Hash digest
SHA256 6e04ae146324f2b662e91390a0a711899db2964b46878268093cd92c69c7f2cd
MD5 8e6451e3b07a072f0b03b5c131aa4b6f
BLAKE2b-256 b03feb17d03dcb24a94287c4fdb37732d89c2570a9116c3d865996e77e325cb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for linthis-0.0.1.tar.gz:

Publisher: release.yml on zhlinh/linthis

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

File details

Details for the file linthis-0.0.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: linthis-0.0.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linthis-0.0.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9b91478ee8398e19428a684ffbd7403b701ca1d22172ac61a9d5807e4edac404
MD5 540ef45efb2741f19670058a8ff832c3
BLAKE2b-256 310fe31cc76ec8e17ef3fc0bf5d75f833e081c6393efb9a3934460a9ceed784d

See more details on using hashes here.

Provenance

The following attestation bundles were made for linthis-0.0.1-py3-none-win_amd64.whl:

Publisher: release.yml on zhlinh/linthis

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

File details

Details for the file linthis-0.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for linthis-0.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 93d6b980dbd1f9f5d6b881e2bd216269f5dbe04153dd4c77b25ef03a4d11edfc
MD5 026fd981a7ef88088212291a81ac2178
BLAKE2b-256 54c91597fe2cce22c2c5ef20ef03944012c6d3ff1eb545d0cb5d1e824a5c44ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for linthis-0.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on zhlinh/linthis

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

File details

Details for the file linthis-0.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for linthis-0.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e5956fa3fbbf02a21872c12c0c1c43882a4af24c3be361c81a4fbd4cf5d90435
MD5 986d6f9506e68d036a560ee54ad7c412
BLAKE2b-256 cda24d49613429fe580519c891b5bedd0f71702842b7084700db7fbf93ccbf79

See more details on using hashes here.

Provenance

The following attestation bundles were made for linthis-0.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on zhlinh/linthis

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

File details

Details for the file linthis-0.0.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for linthis-0.0.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c88687e548bdb3ec7f807e868213770a9fc2c01b9d57fad6924688afa8f9475
MD5 1a9b015beee032e047af6f9af92c8e7e
BLAKE2b-256 64f11a411b74909872792d99a2a8ebd6470b0214b64dd3434bb6e7dfea8406d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for linthis-0.0.1-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on zhlinh/linthis

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

File details

Details for the file linthis-0.0.1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for linthis-0.0.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7251aa12e390eb1e77f02f6999041d942eef675e587af8602e20a7fe7cba3321
MD5 40e4e88cb7b29766cf73bae48ad1e411
BLAKE2b-256 bdd9023190729b4a78f7cb5d3016d93ea38c8eb6d8c6e924d2b7dd55be9ed4b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for linthis-0.0.1-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on zhlinh/linthis

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