{"id":34914348,"url":"https://github.com/spglib/moyo","last_synced_at":"2026-05-09T06:05:44.950Z","repository":{"id":204214595,"uuid":"711348076","full_name":"spglib/moyo","owner":"spglib","description":"Library for Crystal Symmetry in Rust","archived":false,"fork":false,"pushed_at":"2026-05-04T14:29:11.000Z","size":16093,"stargazers_count":71,"open_issues_count":16,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-04T16:31:18.870Z","etag":null,"topics":["crystallography","materials-science","python","rust","symmetry"],"latest_commit_sha":null,"homepage":"https://docs.rs/moyo/latest/moyo/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spglib.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-29T01:07:47.000Z","updated_at":"2026-05-04T01:00:19.000Z","dependencies_parsed_at":"2023-11-23T06:22:26.344Z","dependency_job_id":"44003b40-b139-45f9-97e4-0796f94de097","html_url":"https://github.com/spglib/moyo","commit_stats":null,"previous_names":["lan496/moyo","spglib/moyo"],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/spglib/moyo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spglib%2Fmoyo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spglib%2Fmoyo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spglib%2Fmoyo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spglib%2Fmoyo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spglib","download_url":"https://codeload.github.com/spglib/moyo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spglib%2Fmoyo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32806818,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"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":["crystallography","materials-science","python","rust","symmetry"],"created_at":"2025-12-26T12:01:10.151Z","updated_at":"2026-05-09T06:05:44.944Z","avatar_url":"https://github.com/spglib.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# \u003cimg src=\"./logo.svg\" alt=\"moyo\" width=450\u003e\n\n[![image](https://img.shields.io/pypi/l/moyopy.svg)](https://pypi.python.org/pypi/moyopy)\n[![moyo at crates.io](https://img.shields.io/crates/v/moyo.svg)](https://img.shields.io/crates/v/moyo)\n[![image](https://img.shields.io/pypi/v/moyopy.svg)](https://pypi.python.org/pypi/moyopy)\n\n\u003c/div\u003e\n\nA fast and robust crystal symmetry finder, written in Rust.\n\n\u003cfigure\u003e\n    \u003cdiv style=\"text-align: center\"\u003e\n        \u003cimg src=\"bench/mp/mp.png\" width=50%\u003e\n    \u003c/div\u003e\n    \u003cfigcaption\u003e\u003ca href=\"bench/mp/analysis.ipynb\"\u003eSeveral times faster symmetry detection than Spglib for Materials Project dataset\u003c/a\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n- Rust support available via [crates.io](https://crates.io/crates/moyo): [Docs](https://docs.rs/moyo/latest/moyo/)\n- Python support available via [PyPI](https://pypi.org/project/moyopy/): [Docs](https://spglib.github.io/moyo/python/)\n- JavaScript and WebAssembly support available via [npm](https://www.npmjs.com/package/@spglib/moyo-wasm)\n\n## Interfaces\n\n- [Rust](moyo/README.md): core implementation\n- [Python](moyopy/README.md): Python binding\n- [C](moyoc/README.md): C binding\n- [JavaScript](moyo-wasm/README.md): JavaScript and WebAssembly binding\n\nThe functionality categories below mirror the sections of the [moyopy API\nreference](https://spglib.github.io/moyo/python/api.html).\n\nLegend: ✅ supported · 🟡 partial · ❌ not exposed · ➖ not applicable.\n\n| Category             | Functionality        | Rust (`moyo`) | Python (`moyopy`) | C (`moyoc`) | JS/WASM (`moyo-wasm`) |\n| -------------------- | -------------------- | ------------- | ----------------- | ----------- | --------------------- |\n| Shared               | Core types           | ✅            | ✅                | 🟡          | 🟡                    |\n| Space group          | Dataset from cell    | ✅            | ✅                | ✅          | ✅                    |\n| Space group          | Data access          | ✅            | ✅                | ❌          | ❌                    |\n| Space group          | Group identification | ✅            | ✅                | ❌          | ❌                    |\n| Layer group          | Dataset from cell    | ✅            | ✅                | ❌          | ❌                    |\n| Layer group          | Data access          | ✅            | ✅                | ❌          | ❌                    |\n| Layer group          | Group identification | ✅            | ✅                | ❌          | ❌                    |\n| Magnetic space group | Dataset from cell    | ✅            | ✅                | ❌          | ❌                    |\n| Magnetic space group | Data access          | ✅            | ✅                | ❌          | ❌                    |\n| Magnetic space group | Group identification | ✅            | ✅                | ❌          | ❌                    |\n\nNotes:\n\n- Core types are `Cell`, `Operations`, and `UnimodularTransformation`. C and\n  WASM expose only `Cell` and (implicitly) `Operations` via the dataset\n  output; `UnimodularTransformation` is not bound.\n- \"Dataset from cell\" is the main symmetry-analysis entry point\n  (`MoyoDataset`, `MoyoLayerDataset`, `MoyoCollinearMagneticDataset`,\n  `MoyoNonCollinearMagneticDataset`).\n- \"Data access\" covers classification tables and lookup helpers (e.g.\n  `Setting`, `Centering`, `HallSymbolEntry`, `SpaceGroupType`,\n  `ArithmeticCrystalClass`, `operations_from_number`, `LayerSetting`,\n  `LayerCentering`, `LayerHallSymbolEntry`, `LayerGroupType`,\n  `LayerArithmeticCrystalClass`, `operations_from_layer_number`,\n  `MagneticSpaceGroupType`, `magnetic_operations_from_uni_number`).\n- \"Group identification\" recovers a group label from a primitive list of\n  symmetry operations (`PointGroup` + `SpaceGroup` + `integral_normalizer`,\n  `LayerGroup`, `MagneticSpaceGroup`).\n\n## How to cite moyo and its interfaces\n\nIf you use moyo or its interfaces in your work, please cite the following figshare entry.\n\n```\n@misc{moyo,\n  author = {Kohei Shinohara},\n  title  = {{moyo: A fast and robust crystal symmetry finder, written in Rust}},\n  year   = {2026},\n  month  = {1},\n  doi    = {10.6084/m9.figshare.31081162.v1},\n  url    = {https://figshare.com/articles/software/moyo_A_fast_and_robust_crystal_symmetry_finder_written_in_Rust_/31081162},\n  note   = {Source code available at \\url{https://github.com/spglib/moyo}}\n}\n```\n\nThis citation may be superseded by a peer-reviewed publication in the future.\n\n## Dev\n\n```shell\ncargo install cargo-release cargo-edit cargo-deny cargo-semver-checks\n```\n\n### How to release\n\nPrerequisites: `cargo install cargo-release cargo-edit cargo-deny cargo-semver-checks`\n\n1. `cargo semver-checks` to lint a new release\n1. `cargo set-version --bump patch` for patch version increment\n1. Write [change log](./CHANGELOG.md) and create a pull request\n1. After merging the pull request, run `cargo release --execute` (If you already release the package in crates.io, run `cargo release --execute --no-publish`)\n   - This automatically creates a git tag and pushes it to Remote, and triggers GitHub Actions to publish the packages.\n\n### Debugging\n\n```shell\nRUST_LOG=debug cargo test -- --nocapture\n```\n\n## Acknowledgments\n\nWe thank Dr. Yusuke Seto for providing the crystallographic database.\nWe thank Juan Rodríguez-Carvajal for providing the magnetic space-group database.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspglib%2Fmoyo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspglib%2Fmoyo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspglib%2Fmoyo/lists"}