{"id":25099783,"url":"https://github.com/asimihsan/copier_rust_template","last_synced_at":"2026-04-13T01:05:47.378Z","repository":{"id":275511733,"uuid":"926219810","full_name":"asimihsan/copier_rust_template","owner":"asimihsan","description":"Copier template for Rust, WebAssembly, and Vite TypeScript","archived":false,"fork":false,"pushed_at":"2025-06-12T11:33:42.000Z","size":105,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T11:54:18.046Z","etag":null,"topics":["copier-template","python-template","rust","rust-template","typescript","vite","vite-template","wasm-template","web-template","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asimihsan.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,"zenodo":null}},"created_at":"2025-02-02T20:32:35.000Z","updated_at":"2025-03-29T15:38:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"d724c6d0-54ff-49d1-8dd5-7f3d51cb281f","html_url":"https://github.com/asimihsan/copier_rust_template","commit_stats":null,"previous_names":["asimihsan/copier_rust_template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asimihsan/copier_rust_template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asimihsan%2Fcopier_rust_template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asimihsan%2Fcopier_rust_template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asimihsan%2Fcopier_rust_template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asimihsan%2Fcopier_rust_template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asimihsan","download_url":"https://codeload.github.com/asimihsan/copier_rust_template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asimihsan%2Fcopier_rust_template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260370055,"owners_count":22998765,"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":["copier-template","python-template","rust","rust-template","typescript","vite","vite-template","wasm-template","web-template","webassembly"],"created_at":"2025-02-07T19:39:19.900Z","updated_at":"2026-04-13T01:05:47.367Z","avatar_url":"https://github.com/asimihsan.png","language":"Jinja","funding_links":[],"categories":["Jinja"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🦀 Rust Multi-Platform Starter\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eBuild Once, Run Everywhere: CLI • WASM • Python • Go\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/asimihsan/copier_rust_template/actions/workflows/ci.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/asimihsan/copier_rust_template/ci.yml?style=flat-square\" alt=\"CI Status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square\" alt=\"License\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nA unified Rust template for building native CLIs, WebAssembly modules,\nPython extensions, and Go bindings from a single codebase.\n\n### 🎯 Key Features\n\n- 🦀 Cross-platform Rust core\n- 🌐 WASM bindings with web integration _(Optional)_\n- 🐍 Python bindings _(Optional)_\n- 🦫 Go bindings _(Optional)_\n- 🚀 GitHub Actions CI pipeline\n- 🛠️ Zero-config setup\n- 📊 Comprehensive testing\n\n## Requirements\n\nTo use this template, you need to install the following tools:\n\n- **[Mise](https://mise.jdx.dev/):** Installs and manages Rust, Node, Python, PNPM, and every other tool used by this template.\n  If you don't have Mise yet, simply run `scripts/dev-setup.sh` and follow the prompts.\n- **[Copier](https://copier.readthedocs.io/):** Generates a new project from\n  this template.\n\n## Quickstart\n\nGenerate your project:\n\n```bash\ncopier copy gh:asimihsan/copier_rust_template my-awesome-project\n```\n\nChange into your new project directory:\n\n```bash\ncd my-awesome-project\ngit init\njj git init --colocate\n```\n\nInstall dependencies (Mise will take care of everything):\n\n```bash\n./scripts/dev-setup.sh   # one-time, installs mise if missing\nmise install             # installs the toolchain versions specified in mise.toml\n```\n\nSet up tools:\n\n```bash\nmise run setup\n```\n\nAdd copyright header:\n\n```bash\nmise run copyright\n```\n\nBuild and test your project:\n\n```bash\nmise run ci\n```\n\n## Development Tools \u0026 Workflow\n\nThe template provides a comprehensive development environment powered by Mise.\nNo manual tool installation required—everything from Rust nightly to\nWebAssembly toolchains is automatically configured.\n\n**Testing \u0026 Quality** Comprehensive test suites run across all platforms, with\ncoverage tracking and fuzz testing for core components. Automated CI pipelines\nensure consistent quality on every commit.\n\n**Development Loop** Fast iteration with hot reloading for web development,\nwatch mode for Rust, and automated rebuilds of Python extensions. Commands are\ndiscovered from `mise-tasks/`, so `mise tasks` shows the generated workflow\nsurface directly.\n\n🔧 Cargo, bun, and uv for dependency management  \n🔍 Clippy and ESLint for static analysis  \n✨ rustfmt and Prettier keep code clean  \n📊 Code coverage and performance profiling\n\n## Project Configuration\n\nChoose your project components when generating from the template:\n\n```bash\n# Full-featured project (default)\ncopier copy gh:asimihsan/copier_rust_template my-project\n\n# Core + WebAssembly only\ncopier copy gh:asimihsan/copier_rust_template my-project \\\n  --data include_python=false \\\n  --data include_go=false\n\n# Core + Python bindings only\ncopier copy gh:asimihsan/copier_rust_template my-project \\\n  --data include_wasm=false \\\n  --data include_go=false\n\n# Core + Go bindings only\ncopier copy gh:asimihsan/copier_rust_template my-project \\\n  --data include_wasm=false \\\n  --data include_python=false\n\n# Core functionality only\ncopier copy gh:asimihsan/copier_rust_template my-project \\\n  --data include_wasm=false \\\n  --data include_python=false \\\n  --data include_go=false\n```\n\n## Project Structure\n\nYour generated project will include:\n\n**Core Components**\n\n- `crates/core/`: Your main Rust library codebase\n- `crates/cli/`: Command-line interface implementation\n- `Cargo.toml` \u0026 `deny.toml`: Rust project configuration\n- `.rustfmt.toml`: Code formatting rules\n- `mise-tasks/`: Script-backed developer commands\n\n**Optional Components**\n\n- `crates/wasm/`: WebAssembly module (when `include_wasm=true`)\n- `web/`: TypeScript frontend (when `include_wasm=true`)\n- `crates/python/`: Rust extension crate for Python bindings (when `include_python=true`)\n- `python/`: Python packaging and tests (when `include_python=true`)\n- `crates/go/`: Rust crate for Go bindings (when `include_go=true`)\n- `crates/go-wasm/`: Rust crate for Go/WASI bindings (when `include_go=true`)\n\n**Development Environment**\n\n- `mise.toml`: Toolchain configuration and common operations\n- `.envrc`: Automatic environment activation\n- `.watchmanconfig`: File-watcher ignore defaults carried over from `sheeptext`\n\n## Testing\n\nRun the full rendered-project validation locally:\n\n```bash\nmise run template:ci\n```\n\nIf you want to inspect the rendered project after the run, set `OUTPUT_DIR`:\n\n```bash\nOUTPUT_DIR=/tmp/copier-rust-template-check mise run template:ci\n```\n\n## Contributing\n\nIf you find issues or have improvements to suggest, please open an issue or\nsubmit a pull request.\n\n## License\n\nThis project is licensed under the Mozilla Public License 2.0. See the\n[LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasimihsan%2Fcopier_rust_template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasimihsan%2Fcopier_rust_template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasimihsan%2Fcopier_rust_template/lists"}