30 open-source projects similar to rust-lang/rustfmt, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Rustfmt alternative.
dprint is a multi-language code formatter that applies consistent styling across various programming languages using a pluggable architecture. It functions as a unified project style management tool, a command-line interface for continuous integration style enforcement, and a Language Server Protocol implementation for real-time formatting in editors. The project is distinguished by a WebAssembly-based plugin system that loads sandboxed formatting logic from URLs or file paths. It further extends its capabilities through a process-based tool integration that wraps external command-line interf
SwiftFormat is a tool for the Swift language that functions as a code formatter, linter, and refactoring utility. It automatically applies consistent style rules and visual formatting to source files to ensure a uniform appearance across a project. The project differentiates itself by providing both a command-line interface for batch processing and an Xcode extension for integration directly into the development environment. It includes specialized capabilities for modernizing legacy API usage, simplifying language constructs, and inferring formatting options by analyzing an existing codebase
YAPF is a Python code formatter and style compliance tool. It operates as an AST-based reformatter that uses concrete syntax trees to ensure structural consistency and a uniform visual presentation across source files. The engine utilizes a penalty-based layout optimizer to determine the best line breaks by calculating numerical costs for different formatting choices. It employs a multi-process code processor to distribute the formatting of multiple files across several CPU cores. The tool covers source code reformatting through in-place file modifications, difference analysis, and the proce
google-java-format is a Java code formatter and style enforcement tool. It reformats Java source code to adhere to a standardized style guide, ensuring consistent layout and indentation across entire projects or individual files. The project functions as a build pipeline linting tool for continuous integration workflows and as an IDE formatting plugin to replace native editor formatting. It can be embedded as a formatting library within code generation software to ensure machine-written output remains human-readable. The tool provides capabilities for reorganizing source code indentation and
rustfmt is a tool that automatically rewrites Rust source code to adhere to a consistent and standardized style guide. It functions as both a code formatter for transforming source files and a style linter used to verify if code matches required formatting rules. The system is configurable, allowing for the definition of custom formatting rules and language editions through configuration files to override default styles. It also supports selective formatting by using dedicated skip markers to prevent specific blocks of code from being modified. The tool provides capabilities for both source
vim-lsp is a Vim plugin that implements the Language Server Protocol to provide an asynchronous code intelligence tool for the editor. It serves as a bridge between Vim and external language servers, providing semantic code analysis and IDE-like navigation and diagnostics. The project provides a refactoring interface for renaming symbols across a workspace and applying quick-fixes. It also enables semantic highlighting, which color-codes elements based on their meaning as determined by the language server. The plugin covers a broad surface of capabilities, including symbol navigation and dis
gofumpt is a Go language tool and source code formatter. It functions as an opinionated code styler that applies a strict and consistent visual style to Go source files to ensure a standardized appearance across a codebase. The tool enforces a more rigid and deterministic set of layout constraints than the standard Go toolchain. It is designed for Go project style enforcement to eliminate trivial diffs and stylistic inconsistencies. The project supports Go source code formatting and continuous integration linting to automatically check and correct formatting during the build process.
rust.vim is a Vim plugin that provides language-specific editor support for Rust. It integrates syntax highlighting, indentation management, and tooling configurations to improve the readability and structural understanding of Rust source code. The plugin enables targeted test execution for specific functions and provides integration with an online playground for code experimentation and sharing. It further covers capabilities for code formatting, static error detection, and symbol navigation for browsing source structures and jumping between definitions. Configuration is managed through Vi
Black is a deterministic Python code formatter and style guide enforcer. It automatically reformats source code and Jupyter notebook cells into a consistent style to eliminate manual debates over code layout and reduce noise in version control diffs. The tool uses abstract syntax tree analysis to restructure code layout while ensuring that the underlying functional logic remains unchanged. It employs a deterministic engine that produces a single consistent output for any given input, removing subjective styling choices. The system provides capabilities for in-place file mutation, automated s
This project is a comprehensive, curated directory of static analysis, linting, and security scanning utilities. It serves as a central resource for developers to discover, compare, and select tools based on specific programming languages, licensing models, and integration requirements. The directory distinguishes itself by providing deep metadata for each listed utility, including community-driven popularity rankings, maintenance status, and deployment methods. By aggregating these tools into a single searchable index, it enables teams to identify solutions for enforcing coding standards, ma
This tool is a command-line utility designed to automatically detect and correct coding standard violations in PHP source files. It functions as a static analysis and refactoring engine that ensures consistent project-wide formatting by applying predefined community conventions or custom organizational rules. The project distinguishes itself through a modular rule-based engine that supports both automated style correction and codebase modernization. It allows developers to update legacy syntax to align with newer language versions and testing framework requirements, facilitating the adoption
prettier-eslint is a command-line code stylist and JavaScript formatter that integrates Prettier and ESLint. It functions as a linter wrapper, coordinating a sequential pipeline of formatting and linting tasks to ensure source code is both aesthetically consistent and rule-compliant. The tool resolves conflicts between style guides and logic rules by executing linting fixes after formatting. It allows for a configurable formatting sequence to prioritize specific rules and can identify unformatted files to facilitate use in version control hooks. The project provides capabilities for automati
xo is a zero-config linting tool and ESLint wrapper that provides opinionated default rules for JavaScript and TypeScript. It functions as a static analysis tool to enforce code style and readability standards immediately upon installation without requiring manual configuration. The tool distinguishes itself by providing a zero-config development workflow that eliminates the need for complex configuration files. It supports incremental codebase cleanup by allowing users to ignore known violations through a suppressions file, facilitating the gradual adoption of strict rules in existing projec
lsp-mode is a Language Server Protocol client and IDE feature set for Emacs. It functions as a semantic code analysis tool and JSON-RPC communication layer that connects the editor to external language servers to provide intelligent code completion and real-time diagnostics. The project also serves as a Debug Adapter Protocol client, enabling interactive debugging sessions and breakpoint management. This allows for stepping through code and inspecting variables via a standardized protocol, including support for debugging within Docker containers. The system covers a broad range of developmen
RuboCop is a static code analyzer and linter for Ruby. It functions as a static analysis tool designed to detect potential bugs, identify style violations, and improve overall code quality in Ruby projects. The project provides an automated code formatter that rewrites source code to align with established community standards. It also implements a language server protocol to surface linting and formatting errors directly within text editors. Its capabilities cover automated code linting and the analysis of Ruby code style to ensure consistency across a project. These functions are driven by
Prettier is an opinionated code formatter that parses source code and reprints it from scratch to enforce a consistent, project-wide visual style. By transforming code into an abstract syntax tree and applying a recursive document printing process, it eliminates manual style debates and ensures that all source files adhere to a unified appearance. The project is distinguished by its extensible, plugin-based architecture, which decouples language-specific parsing logic from the core engine. This modular design allows for uniform style enforcement across diverse programming languages and comple
xo is a zero-configuration linting tool for JavaScript and TypeScript. It functions as a wrapper for the ESLint engine, providing a set of strict default rules and static analysis to enforce professional coding standards without requiring manual configuration files. The tool distinguishes itself by providing a zero-config runtime that automatically determines parser settings and linting rules at execution time. It includes a code style formatter to standardize indentation and syntax across all project files. The project covers automated error correction and source code formatting to eliminat
Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web environments or native machine code for operating systems. It serves as an OCaml-compatible language that shares an abstract syntax tree with OCaml, providing a practical syntax for the OCaml ecosystem. The project functions as a type-safe frontend language, incorporating JSX support to build user interfaces through structural elements that translate into type-safe function calls. It enables deep integration with the JavaScript ecosystem, allowing the use of existing librarie
conform.nvim is a Neovim plugin that formats code buffers using external formatters while preserving editor state such as cursor position, folds, and viewport. It supports embedded code block formatting, applying language-specific formatting rules to code blocks inside Markdown and similar documents. The plugin runs formatters asynchronously via Neovim's job control, keeping the editor responsive during formatting operations. It offers a configurable formatter selection algorithm that picks a formatter based on filetype, buffer-local variables, or custom predicate functions. Users can define
Prettier Rust is an opinionated code formatter that autocorrects bad syntax.
Ruff is a high-performance static analysis and code formatting tool designed for Python. Built in Rust, it functions as a comprehensive engine that scans source code to detect programming errors, security vulnerabilities, and deviations from established coding standards. By parsing source code into a structured tree representation, it provides both automated linting and style enforcement across entire projects. The tool distinguishes itself through its speed and deep integration into the development lifecycle. It utilizes parallelized file processing to maximize throughput on large codebases
Vulture is a static analysis tool and linter designed to find unused variables, functions, and classes in Python source code. It operates as a dead code detector and unused code finder that scans source files to identify unreachable expressions and imports without executing the code. The tool employs a confidence-based heuristic scoring system to assign probability values to detections, helping to distinguish truly unused symbols from potential false positives. It further assists in pruning dead logic by sorting detected unused classes and functions by line count to prioritize the removal of
Standard is a zero-configuration static analyzer, linter, and formatter for JavaScript. It functions as a style guide that enforces consistent coding rules and identifies programming errors without requiring manual configuration files. The tool distinguishes itself by providing an automatic code fixer that scans source files to correct style violations and ensure a uniform codebase. It implements a predefined rule set to eliminate the need for project-specific configuration. The project covers a broad range of static analysis capabilities, including support for experimental language syntax a
swift-format is a set of developer utilities for the Swift ecosystem designed for automated style enforcement, static analysis, and project-wide configuration management. It functions as a code formatter that rewrites source code to adhere to consistent style rules and as a linter that identifies style violations. The tool provides a system for defining and applying custom formatting rules through a configuration tool. This includes the ability to load settings from configuration files discovered in a directory hierarchy or to export default settings for user customization. Its capabilities
Biome is a unified developer tooling suite that provides code formatting, linting, and static analysis for JavaScript and TypeScript projects. It functions as a command-line interface designed to automate the maintenance of code quality and style consistency throughout the development lifecycle. The tool distinguishes itself through a high-performance engine built in Rust, which utilizes a single-pass abstract syntax tree to perform formatting and linting simultaneously. By leveraging parallel multi-threaded execution and incremental file system caching, it minimizes latency during analysis t
lint-staged is a git pre-commit task runner that executes linters and formatters specifically on files staged in git. It functions as a staged file filter and a monorepo task orchestrator, identifying the correct configuration and working directory for files across multiple packages in a repository. The system automatically adds formatting changes back to the git stage after a successful task run. It uses a mechanism to match files in the git index against glob patterns to determine which tasks to execute and can automatically update git indices after formatting. The project covers sequentia
This project is a collection of official toolsets and server implementations designed for the parsing, formatting, and semantic analysis of the Go programming language. It includes a language server that provides real-time code intelligence and automated editing capabilities to editors via the Language Server Protocol. The toolset provides a suite of utilities for source code formatting and static analysis. This includes automated standardization of code layout, import organization, and the generation of string representation methods for enumerated types. The project covers broad static anal
This project is a unified toolchain for JavaScript and TypeScript development, providing a suite of specialized tools for bundling, parsing, linting, and formatting source code. The toolchain is implemented in Rust and utilizes a shared internal representation to allow multiple tools to operate on the same parsed source code. It employs a parallelized analysis pipeline and single-pass parsing with error recovery to process files across CPU cores. The suite covers several core capability areas, including static analysis for identifying programmatic errors, automated style standardization, and
This project is a Go language extension for VS Code that provides a comprehensive development environment through a language server client, a debugging interface, and a test automation runner. It integrates language intelligence, formatting, and debugging capabilities to support the full Go language development lifecycle. The extension distinguishes itself by managing the Go toolchain, including the installation and configuration of external binaries required for language features. It also features a dedicated test automation interface that allows for the generation of unit test skeletons and