npm install @wasm-fmt/ruff_fmtnpx jsr add @fmt/ruff-fmtimport init, { format } from "@wasm-fmt/ruff_fmt"; await init(); const input = `x = { 'a':37,'b':42, 'c':927} y = 'hello ''world' z = 'hello '+'world' a = 'hello {}'.format('world') class foo ( object ): def f (self ): return 37*-+2 def g(self, x,y=42): return y def f ( a ) : return 37+-+a[42-x : y**3]`; const formatted = format(input); console.log(formatted);with custom options:
import init, { format } from "@wasm-fmt/ruff_fmt"; // ... const formatted = format(input, "main.py", { indent_style: "space", indent_width: 4, line_width: 88, quote_style: "double", magic_trailing_comma: "respect", }); console.log(formatted);For Vite users:
Add "@wasm-fmt/ruff_fmt" to optimizeDeps.exclude in your vite config:
{ "optimizeDeps": { "exclude": ["@wasm-fmt/ruff_fmt"] } }If you cannot change the vite config, you can use another import entry
import init, { format } from "@wasm-fmt/ruff_fmt/vite"; // ...Note
dpint plugin is deprecated, please use https://dprint.dev/plugins/ruff instead.
dprint config add wasm-fmt/ruff_fmtRuff is an extremely fast Python linter, written in Rust.
This package is a WebAssembly build of Ruff formatter, with a JavaScript wrapper.