{"id":22001595,"url":"https://github.com/alshdavid/mach","last_synced_at":"2025-05-01T10:13:57.857Z","repository":{"id":214418408,"uuid":"736464651","full_name":"alshdavid/mach","owner":"alshdavid","description":"The bundler from down under","archived":false,"fork":false,"pushed_at":"2024-08-22T02:11:08.000Z","size":19561,"stargazers_count":23,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-01T10:13:39.768Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alshdavid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-28T01:38:07.000Z","updated_at":"2024-12-06T14:54:49.000Z","dependencies_parsed_at":"2024-01-08T14:39:55.351Z","dependency_job_id":"4665c20a-d8f8-4e86-95f2-d59921e354cd","html_url":"https://github.com/alshdavid/mach","commit_stats":{"total_commits":124,"total_committers":2,"mean_commits":62.0,"dds":"0.016129032258064502","last_synced_commit":"e1e61c9c8ad5d7125b85454cc1d9fc2f70c7b4b5"},"previous_names":["alshdavid/mach"],"tags_count":112,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alshdavid%2Fmach","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alshdavid%2Fmach/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alshdavid%2Fmach/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alshdavid%2Fmach/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alshdavid","download_url":"https://codeload.github.com/alshdavid/mach/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251857020,"owners_count":21655121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T23:14:21.906Z","updated_at":"2025-05-01T10:13:57.811Z","avatar_url":"https://github.com/alshdavid.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🌏️ \u003cimg height=\"40px\" align=\"center\" src=\"./.docs/assets/logo.svg\"\u003e\u003c/img\u003e 🚀\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eZero Configuration. Zero Dependencies. Fast AF\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg height=\"20px\" src=\"./.docs/assets/prerelease.svg\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ci\u003e\n  Mach is a super fast multi-threaded bundler written in Rust that puts an emphasis on\u003cbr\u003e\n  developer experience and the runtime performance of the compiled application.\u003cbr\u003e\n  \u003cbr\u003e\n  Mach is heavily inspired by the \u003ca href=\"https://parceljs.org/\"\u003eParcel bundler\u003c/a\u003e\n\u003c/i\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\".docs/CONTRIBUTING.md\"\u003eContributing Guidelines\u003c/a\u003e\n  .\n  \u003ca href=\"https://github.com/alshdavid/mach/issues\"\u003eSubmit an Issue\u003c/a\u003e\n  .\n  \u003ca href=\"https://github.com/alshdavid/mach/discussions\"\u003eAsk a Question\u003c/a\u003e\n  .\n  \u003ca href=\"BLOG.md\"\u003eBlog\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/npm/v/@alshdavid/mach\"\u003e\n  \u003cimg src=\"https://img.shields.io/npm/dm/@alshdavid/mach.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/install_dependencies-0-green\"\u003e\n\u003c/p\u003e\n\n---\n\n## Installation\n\nYou can install Mach from npm or get the latest binary from the github [releases](https://github.com/alshdavid/mach/releases/latest)\n\n```bash\nnpm install @alshdavid/mach\nnpx mach version\n```\n\n## Usage\n\n```bash\n$ mach build ./src/index.html\n$ mach dev ./src/index.html #todo\n```\n\n## Programmatic Usage\n\n```javascript\nimport { Mach } from '@alshdavid/mach'\n\n// Create a Mach instance\nconst mach = new Mach()\n\n// Build a target\nconst report = await mach.build({\n  projectRoot: process.cwd(),\n  outFolder: 'dist',\n  entries: ['src/index.js']\n})\n```\n\n## Supported Types\n\nMach comes preconfigured with sensible defaults and does not need configuration. Mach ships with built-in support for the most common source files in web development.\n\n- TypeScript\n- JavaScript\n- JSX and TSX\n- CSS\n- HTML\n- Images (todo)\n\n## Plugins\n\nMach supports plugins that share the ideas and API of [Parcel Plugins](https://parceljs.org/features/plugins) for cases where bundling must be customized.\n\n- [Resolver](https://parceljs.org/plugin-system/resolver/) _partial support_\n- [Transformer](https://parceljs.org/plugin-system/transformer/) _partial support_\n- [Reporter](https://parceljs.org/plugin-system/reporter/) _todo_\n- [Namer](https://parceljs.org/plugin-system/namer/) _todo_\n\nPlugins can be written in:\n- [JavaScript](./.docs/PLUGINS_NODEJS.md) _in progress_\n- [Rust (Dynamically Loaded)](./.docs/PLUGINS_RUST.md) _todo_\n- [Wasm](./.docs/PLUGINS_WASM.md) _todo_\n\n### JavaScript Plugins\n\nImport the plugin API from the `@alshdavid/mach` npm package\n\n```javascript\nimport { Transformer } from '@alshdavid/mach'\n```\n\n## Benchmark\n\nBelow is a build of the three-js source code multiplied 100 times and reexported from a single entry point. The benchmark was run on an M1 MacBook Pro with optimizations/minification turned off.\n\nMach is still under development and has lots of known opportunities for further build time improvements 🙂\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./.docs/assets/benchmarks/benchmark-2024-05-14.png\"\u003e\n\u003c/p\u003e\n\n## Remaining work\n\nThe goal of Mach 1 will be a super fast production ready bundler with plugin support with some features remaining to be added (for instance - incremental bundling, or caching). \n\nThe order of these may change and some may be pushed back to Mach 2\n\n**🧩 Prerelease [Flyer](https://en.wikipedia.org/wiki/Wright_Flyer)**\n- Plugin support\n- Minification\n\n**🧩 Prerelease [Red Baron](https://en.wikipedia.org/wiki/Fokker_Dr.I)**\n- Source Maps\n\n**🧩 Prerelease [Spitfire](https://en.wikipedia.org/wiki/Supermarine_Spitfire)**\n- Watch mode / Auto-recompilation \n- Development server\n- Hot reload\n\n**🧩 Prerelease [Mustang](https://en.wikipedia.org/wiki/North_American_P-51_Mustang)**\n- Bundle splitting (help wanted 🚩)\n\n**🧩 Prerelease [Shooting Star](https://en.wikipedia.org/wiki/Lockheed_P-80_Shooting_Star)**\n- Incremental Bundling for Development\n\n**👀 Release Candidate [X-1](https://en.wikipedia.org/wiki/Bell_X-1)**\n- TBD\n\n**🛩️ Mach 1 - Codenamed [Concorde](https://en.wikipedia.org/wiki/Concorde)**\n- TBD\n\n## Special Thanks\n\n\u003cimg align=\"right\" height=\"40px\" src=\"./.docs/assets/logo-parcel.svg\" /\u003e\nMach is heavily inspired by Parcel. It derives learnings, approaches and adapts code directly from the project.\u003cbr\u003e\n\u003ca href=\"https://parceljs.org/\"\u003eCheck it out here\u003c/a\u003e\u003cbr\u003e\n\n---\n\n\u003cimg align=\"right\" height=\"50px\" src=\"./.docs/assets/logo-atlassian.svg\" /\u003e\nSpecial thanks to Atlassian for supporting my independent development\nof this project during my employment with them.\u003cbr\u003e\n\u003ca href=\"https://www.atlassian.com/\"\u003eLearn about Atlassian\u003c/a\u003e\n\n---\n\n\u003cimg align=\"right\" height=\"80px\" src=\"./.docs/assets/logo-rust-discord.png\" /\u003e\nSpecial thanks to the Rust Community Discord, an amazing community of talented engineers who were \u003cbr\u003ewelcoming and always happy to help out.\u003cbr\u003e\n\u003ca href=\"https://github.com/rust-community-discord\"\u003eJoin the Discord Here\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falshdavid%2Fmach","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falshdavid%2Fmach","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falshdavid%2Fmach/lists"}