Skip to content
SPECIFICTION
Get listed

Oxc vs Terser

Oxc

oxc.rs

Terser

terser.org

Side by side

FigureOxcTerser
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
Web—Yes
WindowsYesYes
macOSYesYes
LinuxYesYes
API—Yes
Plans published11
Spec score · JavaScript Build Tools7.9 (#8)7.7 (#13)
IntegrationsTransformer integrations listed by the project include unplugin-oxc, unplugin-isolated-decl, and oxc-webpack-loader.The project documentation describes using Terser with Acorn-produced SpiderMonkey AST input and replacing nested `uglify-es` dependencies with a Yarn resolution alias.

Plans

Oxc

  • OxcFree

Oxc pricing →

Terser

  • TerserFree

Terser pricing →

In their own words

Oxc

Oxc is a free collection of JavaScript tools written in Rust, available for Linux, macOS and Windows. Its toolchain includes a linter, formatter, parser, transformer, resolver, minifier and TypeScript runner. Oxlint checks JavaScript and TypeScript, including JSX, TSX and script blocks in Vue, Svelte and Astro files. It includes more than 870 rules across areas such as TypeScript, React, Jest, Vitest, imports, Unicorn and accessibility. Type-aware linting uses tsgo, a native Go port of the TypeScript compiler. Oxfmt follows a Prettier-compatible workflow and can sort imports, Tailwind CSS classes and package.json fields; it formats JavaScript, TypeScript, JSON, YAML, TOML, HTML, Vue, Svelte, CSS, Markdown, GraphQL and other formats. The transformer handles TypeScript and JSX, syntax lowering from ES2026 to ES2015, React Refresh, plugins and isolated declaration output. An experimental runner executes TypeScript and JSX without a separate build step, with ESM, CommonJS, source map and tsconfig.json support. It strips types but does not type-check programs, and its APIs and behavior may change between releases.

Visit oxc.rs

Terser

Terser is a free, open-source JavaScript minifier that reduces code by shortening variable names, removing whitespace and comments, and dropping unused code. It can be used through a command-line interface or Node.js API; browser loading is supported and exposes a global `Terser` variable with a `.minify` property. The API’s `minify()` enables compression and mangling by default, and both settings can be changed or turned off. The API can return a source map, while the CLI can generate source maps for compressed JavaScript. The CLI accepts multiple input files and parses them in sequence in one global scope, or reads from standard input when no input file is specified. Compatibility options include an ECMAScript target; `ecma` defaults to 5 for compression and output formatting. Property-name mangling can break code, so the documentation says to use it only when its behavior is understood. Built-in DOM property mangling is disabled by default and is not recommended for enabling. Terser also supports Acorn-produced SpiderMonkey AST input and a Yarn resolution alias for nested `uglify-es` dependencies.

Visit terser.org