gmpmee-sys

Crates.iogmpmee-sys
lib.rsgmpmee-sys
version0.1.3
created_at2024-12-28 16:04:48.044948+00
updated_at2025-05-25 10:05:40.733497+00
descriptionRust FFI bindings for GMPMEE
homepage
repositoryhttps://github.com/de-mo/gmpmee-sys
max_upload_size
id1497589
size310,759
(de-mo)

documentation

https://docs.rs/gmpmee-sys

README

Rust low-level bindings for GMPMEE

The gmpmee-sys crate provides Rust FFI bindings to the GMP Modular Exponentiation Extension (GMPMEE), which is a minor extension of GMP. It adds simultaneous modular exponentiation and fixed base modular exponentiation functionality to the set of integer functions (the mpz-functions), as well as special purpose primality testing routines.

The crate is strongly inspired from gmp-mpfr-sys. In particular the file build.rs is copied from this crate, and adapted to the needs of the gmpmee-sys crate. No cache is implemented, since the compilation is quick.

Types

Unlike in the C libraries, the types (e.g. gmpmee_spowm_tab, gmpmee_fpowm_tab) are defined directly as structs, not as single-element arrays.

Using gmpmee-sys

The gmpmee-sys crate is available on crates.io. To use gmpmee-sys in your crate, add it as a dependency inside [Cargo.toml]:

[dependencies]
gmpmee-sys = "0.1"

Building on GNU/Linux

To build on GNU/Linux, simply make sure you have diffutils, gcc, make, autoconf, libtool, m4 and gmp installed on your system. For example on Debian:

sudo apt update 
sudo apt install diffutils gcc make m4 autoconf libtool libgmp3-dev

Building on macOS

To build on macOS, you need the command-line developer tools. To install them, run the following command in a terminal:

xcode-select --install

Building on Windows

Actually the crate is not working for Windows

Licence

The gmpee-sys crate is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the full text of the LICENSE for details.

Commit count: 18

cargo fmt