{"library":"unbash","type":"library","category":null,"description":"unbash is a fast, zero-dependency library written in TypeScript for parsing Bash scripts into a structured Abstract Syntax Tree (AST). Currently stable at version 2.2.0, it differentiates itself by offering a pure JavaScript/TypeScript implementation without WASM or native bindings, providing a fully typed API, and delivering high performance, often outperforming alternatives by a significant margin. Its release cadence follows a typical Semantic Versioning approach, with updates for features and bug fixes. Key differentiators include its AST-centric output (unlike CST-focused parsers), tolerant parsing that collects errors rather than throwing exceptions, and built-in support for advanced Bash syntax such as process substitutions, coproc, `[[ ]]` test expressions, `(( ))` arithmetic evaluations, and extglob. It is designed for environments requiring a lightweight, synchronous parsing solution. While it excels at AST generation and speed, it does not offer incremental parsing, full token preservation for CSTs, or multi-shell dialect support (e.g., pure POSIX sh), features found in libraries like tree-sitter-bash or sh-syntax. It requires Node.js v14 or higher and maintains a small bundle size (13KB gzipped).","language":"javascript","status":"active","version":"2.2.0","tags":["javascript","ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"last_verified":"Wed May 27","install":[{"cmd":"npm install unbash","imports":["import { parse } from 'unbash'","import { print } from 'unbash/print'","import { type Script } from 'unbash'"]},{"cmd":"yarn add unbash","imports":[]},{"cmd":"pnpm add unbash","imports":[]}],"homepage":null,"github":"https://github.com/webpro-nl/unbash","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/unbash","openapi_spec":null,"status_page":null,"smithery":null,"compatibility":{"summary":{"python_range":"18–22","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"url":"https://checklist.day/v1/registry/unbash/compatibility"}}