Mercurial > crates > nonstick
view README.md @ 160:09dff285ff5e
Switch default PAM detection strategy to target-based.
To make cross-compilation easier (like for docs.rs), this change
makes OS-based detection of PAM the default, only falling back
to probing the actual installed PAM as a last resort.
I haven't been able to find a Linux distribution that uses
anything but Linux-PAM.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Sun, 13 Jul 2025 15:38:00 -0400 |
parents | c9fc7e6257d3 |
children | 9e4ce1631bd3 |
line wrap: on
line source
# 🍳 nonstick Nonstick lets you use PAM (Pluggable Authentication Modules) from Rust without getting stuck in unsafe code. ## Status This is currently somewhat incomplete. It provides fairly robust functionality for developing PAM modules (i.e., backends that PAM calls to authenticate users or do something similar). [Linux-PAM](https://github.com/linux-pam/linux-pam) is the only _tested_ PAM implementation, but it compiles against OpenPAM. *If you’re looking for a library to implement a PAM client* (i.e., something that authenticates using PAM), consider the [`pam` crate](https://crates.io/crates/pam) for now. APIs are likely to break before v0.1.0, but thereafter should stabilize to an eventual 1.0 release. After v0.1.0, the shape of the API should be mostly formed, and most of what happens will be adding new features. Goals include: - Bindings for PAM clients. - Additional PAM features, like environment variables. - Way more documentation. ## Credits This is a direct fork of [Anthony Nowell](http://anowell.com/)’s [`pam-rs`/`pam-bindings` crate](https://crates.io/crates/pam-bindings). `pam-rs` was in turn inspired by: - [`rust-pam` by tozny](https://github.com/tozny/rust-pam) - [`pam_groupmap` by ndenev](https://github.com/ndenev/pam_groupmap) - [`pam-http` by beatgammit](https://github.com/beatgammit/pam-http)