{"id":15386391,"url":"https://github.com/h-a-n-a/magic-string-rs","last_synced_at":"2025-12-30T04:05:21.545Z","repository":{"id":40455695,"uuid":"427988527","full_name":"h-a-n-a/magic-string-rs","owner":"h-a-n-a","description":"⚡️ Fast MagicString port driven by Rust and N-API","archived":true,"fork":false,"pushed_at":"2024-04-06T13:05:51.000Z","size":333,"stargazers_count":72,"open_issues_count":14,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-25T13:58:28.691Z","etag":null,"topics":["magic-string","napi-rs","rust","string"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/h-a-n-a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2021-11-14T17:01:56.000Z","updated_at":"2025-05-15T12:14:54.000Z","dependencies_parsed_at":"2024-06-18T16:53:29.993Z","dependency_job_id":"2b638872-7cd1-47e8-a83b-d320a008a6ec","html_url":"https://github.com/h-a-n-a/magic-string-rs","commit_stats":{"total_commits":53,"total_committers":4,"mean_commits":13.25,"dds":0.4339622641509434,"last_synced_commit":"be39c8abe5b699afb9b8f02f7a40ee8b99745a2b"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/h-a-n-a/magic-string-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-a-n-a%2Fmagic-string-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-a-n-a%2Fmagic-string-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-a-n-a%2Fmagic-string-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-a-n-a%2Fmagic-string-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h-a-n-a","download_url":"https://codeload.github.com/h-a-n-a/magic-string-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-a-n-a%2Fmagic-string-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281467255,"owners_count":26506460,"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","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["magic-string","napi-rs","rust","string"],"created_at":"2024-10-01T14:49:08.502Z","updated_at":"2025-10-29T01:31:31.091Z","avatar_url":"https://github.com/h-a-n-a.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr /\u003e\n\n\u003ch1 align=\"center\"\u003emagic-string-rs\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/h-a-n-a/magic-string-rs/actions/workflows/CI.yaml\"\u003e\u003cimg src=\"https://github.com/h-a-n-a/magic-string-rs/actions/workflows/CI.yaml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003ca href=\"https://crates.io/crates/magic_string\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/magic_string.svg?label=crates\" alt=\"crates\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/@napi-rs/magic-string\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@napi-rs/magic-string?color=c95f8b\u0026amp;label=NPM\" alt=\"NPM version\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/Rich-Harris/magic-string\"\u003eMagicString\u003c/a\u003e port for Node and modern browsers, also, for rust, of course.\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n## 🔧 Installation\n\n### Rust\n\nAdd it as a dependency in a Cargo project.\n\n```toml\n# Cargo.toml\n\n[dependency]\nmagic_string = \"x.x.x\"\n```\n\n### Node\n\n```bash\n$ npm install @napi-rs/magic-string\n```\n\nNote: Web-Assembly is currently not supported, but it's on the plan.\n\n## Performance\n\n### Hardware info\n\n```\nModel Name:\tMacBook Pro\nModel Identifier:\tMacBookPro17,1\nChip:\tApple M1\nTotal Number of Cores:\t8 (4 performance and 4 efficiency)\nMemory:\t16 GB\n```\n\n### Benchmark\n\n```\nRunning \"overwrite\" suite...\nProgress: 100%\n\n  MagicString:\n    238 584 ops/s, ±0.34%   | slowest, 50.7% slower\n\n  MagicStringRust:\n    483 950 ops/s, ±2.13%   | fastest\n\nFinished 2 cases!\n  Fastest: MagicStringRust\n  Slowest: MagicString\n\nRunning \"prepend|append\" suite...\nProgress: 100%\n\n  MagicString:\n    290 244 ops/s, ±1.35%   | slowest, 48.35% slower\n\n  MagicStringRust:\n    561 981 ops/s, ±6.71%   | fastest\n\nFinished 2 cases!\n  Fastest: MagicStringRust\n  Slowest: MagicString\n\nRunning \"add banner#toString\" suite...\nProgress: 100%\n\n  MagicString:\n    301 467 ops/s, ±0.29%   | slowest, 37.66% slower\n\n  MagicStringRust:\n    483 586 ops/s, ±5.50%   | fastest\n\nFinished 2 cases!\n  Fastest: MagicStringRust\n  Slowest: MagicString\n\nRunning \"add banner#generateDecodedMap\" suite...\nProgress: 100%\n\n  MagicString:\n    233 702 ops/s, ±0.76%   | fastest\n\n  MagicStringRust:\n    229 899 ops/s, ±2.68%   | slowest, 1.63% slower\n\nFinished 2 cases!\n  Fastest: MagicString\n  Slowest: MagicStringRust\n\nRunning \"add banner#generateMapHires\" suite...\nProgress: 100%\n\n  MagicString:\n    177 783 ops/s, ±1.84%   | fastest\n\n  MagicStringRust:\n    90 780 ops/s, ±1.00%    | slowest, 48.94% slower\n\nFinished 2 cases!\n  Fastest: MagicString\n  Slowest: MagicStringRust\n\nRunning \"add banner#generateMap\" suite...\nProgress: 100%\n\n  MagicString:\n    227 594 ops/s, ±0.68%   | slowest, 0.42% slow\ner\n\n  MagicStringRust:\n    228 545 ops/s, ±0.82%   | fastest\n\nFinished 2 cases!\n  Fastest: MagicStringRust\n  Slowest: MagicString\n\nRunning \"add banner#generateMap.toString\" suite...\nProgress: 100%\n\n  MagicString:\n    201 272 ops/s, ±0.47%   | slowest, 21.86% slower\n\n  MagicStringRust:\n    257 577 ops/s, ±2.38%   | fastest\n\nFinished 2 cases!\n  Fastest: MagicStringRust\n  Slowest: MagicString\n\nRunning \"add banner#generateMapHires.toString\" suite...\nProgress: 100%\n\n  MagicString:\n    157 685 ops/s, ±0.18%   | fastest\n\n  MagicStringRust:\n    95 510 ops/s, ±1.00%    | slowest, 39.43% slower\n\nFinished 2 cases!\n  Fastest: MagicString\n  Slowest: MagicStringRust\n\nRunning \"add banner#generateMap.toUrl\" suite...\nProgress: 100%\n\n  MagicString:\n    182 161 ops/s, ±0.65%   | slowest, 25.04% slower\n\n  MagicStringRust:\n    243 019 ops/s, ±0.98%   | fastest\n\nFinished 2 cases!\n  Fastest: MagicStringRust\n  Slowest: MagicString\n```\n\n## 📃 Documentation\n\n[doc.rs](https://docs.rs/magic_string/latest/magic_string)\n\n## Supported APIs\n\n- [x] generateMap: Note that there is a huge overhead for rust for implementing the same API in Node, for more detail please refer to [this](./node/index.d.ts)\n- [x] generateDecodedMap\n- [x] toString\n- [x] prepend\n- [x] append\n- [x] prependLeft\n- [x] prependRight\n- [x] appendLeft\n- [x] appendRight\n- [x] overwrite\n- [x] trim\n- [x] trimStart\n- [x] trimEnd\n- [x] trimLines\n- [x] isEmpty\n- [x] remove\n- [ ] move\n- [ ] indent\n- [ ] addSourcemapLocation\n- [ ] clone\n- [ ] slice\n- [ ] snip\n\n## Credits\n\nThe original project [magic-string](https://github.com/Rich-Harris/magic-string) is really awesome, you should check it out and we made this project even furthur for better performance.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh-a-n-a%2Fmagic-string-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh-a-n-a%2Fmagic-string-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh-a-n-a%2Fmagic-string-rs/lists"}