Moyo
Library for Crystal Symmetry in Rust
Install / Use
/learn @spglib/MoyoREADME
<img src="./logo.svg" alt="moyo" width=450>
</div>A fast and robust crystal symmetry finder, written in Rust.
<figure> <div style="text-align: center"> <img src="bench/mp/mp.png" width=50%> </div> <figcaption><a href="bench/mp/analysis.ipynb">Several times faster symmetry detection than Spglib for Materials Project dataset</a></figcaption> </figure>- Rust support available via crates.io: Docs
- Python support available via PyPI: Docs
- JavaScript and WebAssembly support available via npm
Interfaces
- Rust: core implementation
- Python: Python binding
- C: C binding
- JavaScript: JavaScript and WebAssembly binding
How to cite moyo and its interfaces
If you use moyo or its interfaces in your work, please cite the following figshare entry.
@misc{moyo,
author = {Kohei Shinohara},
title = {{moyo: A fast and robust crystal symmetry finder, written in Rust}},
year = {2026},
month = {1},
doi = {10.6084/m9.figshare.31081162.v1},
url = {https://figshare.com/articles/software/moyo_A_fast_and_robust_crystal_symmetry_finder_written_in_Rust_/31081162},
note = {Source code available at \url{https://github.com/spglib/moyo}}
}
This citation may be superseded by a peer-reviewed publication in the future.
Dev
cargo install cargo-release cargo-edit cargo-deny cargo-semver-checks
How to release
cargo semver-checksto lint a new releasecargo set-version --bump patchfor patch version increment- Write change log and git-commit
cargo release --execute(If you already release the package in crates.io, runcargo release --execute --no-publish)
Debugging
RUST_LOG=debug cargo test -- --nocapture
Acknowledgments
We thank Dr. Yusuke Seto for providing the crystallographic database. We thank Juan Rodríguez-Carvajal for providing the magnetic space-group database.
Related Skills
himalaya
329.0kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
329.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
openai-image-gen
329.0kBatch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.
claude-opus-4-5-migration
81.1kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
