Mercurial > crates > nonstick
diff libpam-sys/README.md @ 129:5b2de52dd8b2
Cleanups: create readmes, add a few docs, remove cruft.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Mon, 30 Jun 2025 23:49:54 -0400 |
parents | 2b255c92417b |
children |
line wrap: on
line diff
--- a/libpam-sys/README.md Mon Jun 30 23:00:53 2025 -0400 +++ b/libpam-sys/README.md Mon Jun 30 23:49:54 2025 -0400 @@ -1,6 +1,9 @@ -# libpam-sys +# `libpam-sys`: low-level bindings to Pluggable Authentication Modules -This crate provides low-level access to PAM. +This crate provides low-level access to PAM, working with multiple PAM implementations. +You do not need PAM system headers installed to use this! + +If you're looking for a nice, safe, Rusty API to PAM, may I recommend [nonstick][nonstick]? ## Configuration @@ -14,7 +17,7 @@ Each implementation exports all the functionality available in its respective PAM library. `XSso` exports only what is in the [X/SSO specification][xsso]. -## Features +## Cargo Features The `helpers` feature (optional, but on by default) exports two helpers for PAM memory management. @@ -23,6 +26,21 @@ Neither are directly referenced elsewhere, and both allow you to bring your own storage abstractions. +## Testing + +Tests are mostly run through `libpam-sys-test`, which lives in the crate's workspace in its repository (along with [nonstick]). + +- [`ctest`][ctest] verifies the correctness of the FFI bindings (function/struct alignment, etc.). +- A kind of scuffed homebrew thing also verifies that the constants are correct. + +Testing is mainly accomplished through the `libpam-sys-test` package in this crate's workspace. +There are some unit tests of glue code and other type checks. + +## Minimum Rust version + +This crate supports **Rust 1.75**, the current version in Debian Trixie and Ubuntu 24.04.2 LTS. +There shouldn't be much that needs changing, since PAM's API is quite stable. + ## References - [X/SSO PAM specification][xsso]: This 1997 document laid out the original specification for PAM. @@ -34,6 +52,8 @@ - [Illumos PAM repository][illumos-pam]: Illumos's implementation of PAM, based on Sun's Solaris. Even more basic than OpenPAM. - [Illumos PAM man page][manillumos]: Illumos's root man page for its PAM implementation. +[ctest]: https://github.com/rust-lang/libc/tree/ctest-v0.4.11/ctest +[nonstick]: https://crates.io/crates/nonstick [xsso]: https://pubs.opengroup.org/onlinepubs/8329799/toc.htm [linux-pam]: https://github.com/linux-pam/linux-pam [man7]: https://www.man7.org/linux/man-pages/man8/pam.8.html