dprint vs shfmt
dprint
dprint.devshfmt
github.comSide by side
| Figure | dprint | shfmt |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Code Formatting Tools | 8.1 (#7) | 7.6 (#23) |
| Configuration | Projects use dprint.json, dprint.jsonc, .dprint.json or .dprint.jsonc files to define plugins, formatting settings, includes and excludes. | shfmt reads formatting options from EditorConfig files when parser or printer flags are not provided. |
| Editor integrations | The installation guide lists Visual Studio Code, IntelliJ and Neovim integrations, with the dprint language-server command usable by other editors. | Listed integrations include JetBrains shell plugins, micro, NeoVim, VS Code, Emacs, and Trunk. |
| Purpose | dprint is a command-line application that automatically formats code. | shfmt formats shell programs and is included in a shell parser, formatter, and interpreter project. |
| Security | Wasm plugins run sandboxed without access to the network or file system. | The latest release page says its release tag was signed with the committer’s verified signature. |
| Support | The official contact page directs users to email [email protected]. | The project asks users to file detailed bug reports and feature requests as issues; sponsorship tiers mention prioritized issues and direct support in a company chat app. |
Plans
In their own words
dprint
dprint is a command-line application that automatically formats code through a configurable, pluggable system built with Rust and WebAssembly. Its official and wrapper plugins cover languages and formats including TypeScript, JavaScript, JSON, Markdown, TOML, CSS, Dockerfile, C#, Python, Go, Swift, GraphQL, YAML, PHP, LaTeX, R, and Julia. Project configuration files define plugins, formatting settings, included files, and exclusions. Plugins can be loaded from a URL or file path and pinned or versioned in configuration. The project says dprint formats hundreds of files in milliseconds and enables incremental caching by default. WebAssembly plugins run in a sandbox without network or file-system access, while process plugins are executable files and are not sandboxed. Editor integrations are listed for Visual Studio Code, IntelliJ, and Neovim; the language-server command can also be used by other editors. The CLI is distributed as a static binary with no runtime dependencies, with installation options including shell, PowerShell, Cargo, npm, and Homebrew. It is MIT-licensed and free.