fpylll
A Python interface for https://github.com/fplll/fplll
Decision gist · record as of 2026-08-14
Yes, if you need lattice reduction algorithms and can satisfy the C/C++ build dependencies. The package is actively maintained, has no known vulnerabilities, and pre-built wheels reduce friction on common platforms. However, the GPL version 2 or later license requires verification against your project's licensing constraints, and the unclear license treatment in metadata warrants explicit confirmation before use in proprietary or restricted-license contexts.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires GMP/MPIR, MPFR, and fplll C/C++ libraries to be installed and linked; LD_LIBRARY_PATH may need to be set at runtime to locate shared libraries.
- Medium install friction due to compiled C/C++ dependencies.
- Requires GMP or MPIR, MPFR, and the fplll library to be built and linked; pre-built wheels are available for common platforms, but manual compilation may be needed on unsupported architectures.
License · maintenance · safety
(unclear) — Licensed under GNU General Public License, version 2 or later; license treatment is marked unclear in the metadata. Users should verify GPL compatibility with their project before integrating fpylll.
last release 2025-05-29 (442 days) · last repo commit 2026-06-15 · 167 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 102,671 downloads/mo, #12,856 on PyPI
Alternatives
Verify before relying
pip install fpylll
from fpylll import IntegerMatrix, GSO, LLL
A = IntegerMatrix(50, 50)
A.randomize("ntrulike", bits=50, q=127)
M = GSO.Mat(A)
M.update_gso()
L = LLL.Reduction(M)
L()- Whether pre-built wheels include all optional features (e.g., QD double-double/quad-double arithmetic support).
- Exact Python version support range (requires_python is unspecified in metadata).
- Performance characteristics and scalability limits for large matrices or high-dimensional lattices.
- Whether multicore support mentioned in the description is fully functional and documented.
What it is and what it does
fpylll exposes the fplll lattice reduction library to Python, allowing developers to work with integer matrices and apply reduction algorithms central to computational number theory and cryptanalysis. It provides classes like IntegerMatrix for matrix construction, GSO for Gram-Schmidt orthogonalization, and LLL/BKZ for lattice basis reduction—the core operations needed to solve lattice problems such as finding short vectors or breaking certain cryptographic schemes.
The package is a thin Cython wrapper around C/C++ code, so it depends on external libraries (GMP, MPFR, fplll) being compiled and linked at install time. Pre-built wheels exist for common platforms, but installation can require manual compilation on less common architectures. Once installed, it integrates into the Sage computer algebra system and is available via PyPI and Conda-Forge.
Use it for
- Implementing lattice-based cryptanalysis or testing the security of lattice cryptographic schemes.
- Computing shortest vectors in lattices or solving the shortest vector problem for research.
- Reducing integer matrix bases for number-theoretic computations in academic or research settings.
- Prototyping BKZ and LLL algorithms for lattice geometry or optimization research.
- Integrating lattice reduction into larger computational workflows within Sage or standalone Python.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need lattice reduction algorithms and can satisfy the C/C++ build dependencies.
The package is actively maintained, has no known vulnerabilities, and pre-built wheels reduce friction on common platforms. However, the GPL version 2 or later license requires verification against your project's licensing constraints, and the unclear license treatment in metadata warrants explicit confirmation before use in proprietary or restricted-license contexts.
Install
fpylll on PyPI
Before you install
Medium install friction due to compiled C/C++ dependencies. Requires GMP or MPIR, MPFR, and the fplll library to be built and linked; pre-built wheels are available for common platforms, but manual compilation may be needed on unsupported architectures.
Requires GMP/MPIR, MPFR, and fplll C/C++ libraries to be installed and linked; LD_LIBRARY_PATH may need to be set at runtime to locate shared libraries.
License in practice
Licensed under GNU General Public License, version 2 or later; license treatment is marked unclear in the metadata. Users should verify GPL compatibility with their project before integrating fpylll.
Quickstart
pip install fpylll
from fpylll import IntegerMatrix, GSO, LLL
A = IntegerMatrix(50, 50)
A.randomize("ntrulike", bits=50, q=127)
M = GSO.Mat(A)
M.update_gso()
L = LLL.Reduction(M)
L()
Verify before relying
- Whether pre-built wheels include all optional features (e.g., QD double-double/quad-double arithmetic support).
- Exact Python version support range (requires_python is unspecified in metadata).
- Performance characteristics and scalability limits for large matrices or high-dimensional lattices.
- Whether multicore support mentioned in the description is fully functional and documented.
Package facts
| License | Not declared unclear |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 442 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 102,671 / month, #12,856 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: fpylll-0.6.4-cp310-cp310-macosx_10_9_x86_64.whl; fpylll-0.6.4-cp310-cp310-macosx_11_0_arm64.whl; fpylll-0.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; fpylll-0.6.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl; fpylll-0.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fpylll-0.6.4-cp310-cp310-musllinux_1_2_aarch64.whl; fpylll-0.6.4-cp310-cp310-musllinux_1_2_i686.whl; fpylll-0.6.4-cp310-cp310-musllinux_1_2_x86_64.whl; fpylll-0.6.4-cp311-cp311-macosx_10_9_x86_64.whl; fpylll-0.6.4-cp311-cp311-macosx_11_0_arm64.whl; fpylll-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; fpylll-0.6.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; fpylll-0.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fpylll-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl; fpylll-0.6.4-cp311-cp311-musllinux_1_2_i686.whl; fpylll-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl; fpylll-0.6.4-cp312-cp312-macosx_10_13_x86_64.whl; fpylll-0.6.4-cp312-cp312-macosx_11_0_arm64.whl; fpylll-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; fpylll-0.6.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.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 › “lattice reduction python”
- fpylllfpylll is a Python wrapper for the fplll lattice reduction library,…
- mypy-boto3-vpc-latticeProvides type annotations and IDE autocomplete support for boto3's…
- phonopyPhonopy calculates phonon properties and vibrational spectra for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics 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.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also cypari2 · cylp · onemkl-sycl-blas · mkl · onemkl-sycl-lapack · linear-operator · onemkl-sycl-sparse · sagemath · passagemath-homfly