spglib
This is the spglib module.
Decision gist · record as of 2026-08-14
Yes, if you work with crystallographic data. spglib is actively maintained, carries no known vulnerabilities, supports modern Python versions (3.9–3.14), and is widely used in materials science. Medium install friction is typical for compiled bindings and poses no barrier on standard platforms. The BSD-3-Clause license is permissive.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- numpy must be installed before spglib; C bindings require compatible platform wheels or a system Spglib library.
- Medium install friction due to compiled C bindings, but well-supported across Python 3.9–3.14 and major platforms (macOS, Windows, Linux).
- Active maintenance with recent commits and no known vulnerabilities.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; attribution required.
last release 2025-12-29 (228 days) · last repo commit 2026-07-13 · 372 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,396,683 downloads/mo, #3,960 on PyPI
Alternatives
Verify before relying
pip install spglib
import spglib
spglib.get_spacegroup((lattice, positions, numbers))- Exact API surface and available symmetry operations beyond space group detection
- Performance characteristics for large crystal structures
- Whether bundled vs. system Spglib library choice affects behavior or performance
What it is and what it does
spglib is a Python interface to a C library for crystallographic symmetry analysis. It identifies space groups, finds symmetry operations, and handles crystal structure symmetries—core tasks in materials science, solid-state physics, and computational chemistry. The package wraps a compiled C backend and depends on numpy, importlib-resources, and typing-extensions.
It is intended for researchers and engineers working with crystal structures who need to programmatically detect and manipulate symmetries. The bindings can use either a bundled Spglib library or link to a system-installed version via LD_LIBRARY_PATH or DYLD_LIBRARY_PATH, offering flexibility in environments with pre-existing Spglib installations.
Use it for
- Identify the space group and symmetry operations of a crystal structure from lattice and atomic positions
- Reduce a crystal structure to its primitive cell using symmetry information
- Generate equivalent atomic positions under space group symmetry operations
- Validate crystal structure symmetry in materials discovery or high-throughput screening workflows
- Integrate symmetry analysis into computational materials science pipelines
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with crystallographic data.
spglib is actively maintained, carries no known vulnerabilities, supports modern Python versions (3.9–3.14), and is widely used in materials science. Medium install friction is typical for compiled bindings and poses no barrier on standard platforms. The BSD-3-Clause license is permissive.
Install
spglib on PyPI
Before you install
Medium install friction due to compiled C bindings, but well-supported across Python 3.9–3.14 and major platforms (macOS, Windows, Linux). Active maintenance with recent commits and no known vulnerabilities. Requires numpy pre-installation.
numpy must be installed before spglib; C bindings require compatible platform wheels or a system Spglib library.
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; attribution required.
Quickstart
pip install spglib
import spglib
spglib.get_spacegroup((lattice, positions, numbers))
Verify before relying
- Exact API surface and available symmetry operations beyond space group detection
- Performance characteristics for large crystal structures
- Whether bundled vs. system Spglib library choice affects behavior or performance
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 3 packagesnumpyimportlib-resourcestyping-extensions |
| Maintenance | Actively maintained 228 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,396,683 / month, #3,960 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: Science/ResearchOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: UnixProgramming Language :: CProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Scientific/Engineering :: Physics |
Evidence: spglib-2.7.0-cp310-cp310-macosx_11_0_arm64.whl; spglib-2.7.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; spglib-2.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; spglib-2.7.0-cp310-cp310-win_amd64.whl; spglib-2.7.0-cp311-cp311-macosx_11_0_arm64.whl; spglib-2.7.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; spglib-2.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; spglib-2.7.0-cp311-cp311-win_amd64.whl; spglib-2.7.0-cp311-cp311-win_arm64.whl; spglib-2.7.0-cp312-cp312-macosx_11_0_arm64.whl; spglib-2.7.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; spglib-2.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; spglib-2.7.0-cp312-cp312-win_amd64.whl; spglib-2.7.0-cp312-cp312-win_arm64.whl; spglib-2.7.0-cp313-cp313-macosx_11_0_arm64.whl; spglib-2.7.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; spglib-2.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; spglib-2.7.0-cp313-cp313-win_amd64.whl; spglib-2.7.0-cp313-cp313-win_arm64.whl; spglib-2.7.0-cp314-cp314-macosx_11_0_arm64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “crystal symmetry detection”
- spglibspglib provides Python bindings to a C library for identifying and…
- moyopyMoyopy is a Python binding for Moyo, a crystal symmetry finder that…
- pyxtalPyXtal generates crystal structures with specified symmetry…
Give your agent the search over MCP, or paste the wish link into any chat.
More Physics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
Pydicom reads, modifies, and writes DICOM medical imaging files in pure Python, with optional NumPy support for pixel data as arrays.
Install it if you work with medical imaging data, DICOM files, or healthcare IT systems.
Albumentations applies image transformations to training data, supporting classification, segmentation, object detection, and pose estimation with a unified API for images, masks, bounding boxes, and keypoints.
Install it if you need a unified, production-grade augmentation API for computer vision tasks.
CoolProp provides thermodynamic and transport property calculations for fluids and fluid mixtures, offering open-source functionality similar to REFPROP.
Provides quaternion representation, manipulation, and rotation operations for 3D geometry and animation, with support for smooth interpolation between orientations.
See also moyopy · seekpath · pyxtal · gemmi · symfc · PyCifRW · pymatgen-core · mmcif · glfw · pyocse