{"repo":"srijan-paul/jam","free":true,"listed":false,"github":"https://github.com/srijan-paul/jam","clone":"git clone https://github.com/srijan-paul/jam.git","description":"Fastest JS parser and semantic analyzer out there.","language":"Zig","stars":131,"topics":["javascript","linter","toolchain","zig"],"license":"MIT","category":"dev-tools","readme_excerpt":"Jam A high-performance JavaScript parser and semantic analyzer built from the ground up. Work in progress! Goals - Competitive in performance with existing tools. - Support JS, JSX, and TypeScript out of the box. - And the part of VueJS code. - Single, small binary. - Support data flow analysis and call-graphs with an accessible API. - Expose a capable parsing and scope resolution, such that a bundler, minifier, etc., can be built on top of it. - API to write lint rules with zig. - Custom JavaScript plugins. Roadmap - Phase 1: - [x] A fast, 100% Spec compliant JavaScript parser. - [x] Port ESLint scope to Zig - [x] JSX parsing. - [ ] Semantic analysis: Control Flow Graphs ( WIP ). - [ ] TypeScript parsing ( WIP ). - [ ] Runtime for a linter, with Zig plugin support. - [ ] Formatter with a language agnostic backend . - Alpha release - [ ] Simple linter with all the base rules from ESLint. - [ ] A prototype for the jam formatter - Beta release - [ ] Data flow analysis and taint checking Local development I've tried to keep the development process hassle-free. You need only a Zig compiler (and optionally an environment variable) to get going. If you still face any issues, feel free to open an issue or reach out to me on discord ( @in.july ), twitter, or e-mail. I usually respond within a day. NOTE: If you're willing to contribute, It's a good idea to copy the contents of ./pre-commit to your ./.git/hooks/pre-commit . This will ensure you didn't break any existing functionality b","default_branch":null,"files":null,"tree":[],"storefront":"/r/srijan-paul","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/srijan-paul/jam/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}