comparison README.md @ 184:42f747774d94

Really get documentation stuff squared away. Expand READMEs and polish off module documentation.
author Paul Fisher <paul@pfish.zone>
date Thu, 31 Jul 2025 14:36:50 -0400
parents 9e4ce1631bd3
children
comparison
equal deleted inserted replaced
183:4f46681b3f54 184:42f747774d94
1 # 🍳 nonstick 1 # 🍳 nonstick
2 2
3 Nonstick lets you use PAM (Pluggable Authentication Modules) from Rust safely. 3 Nonstick lets you use PAM (Pluggable Authentication Modules) from Rust.
4 Don't worry about getting stuck on unsafe code. 4 Never worry about getting stuck on unsafe code.
5 5
6 You can use nonstick for interacting with PAM from both sides: 6 You can use nonstick for interacting with PAM from both sides:
7 7
8 - PAM applications: call into PAM to authenticate users. 8 - PAM applications: call into PAM to authenticate users.
9 - PAM modules: write a backend that PAM uses for authentication. 9 - PAM modules: write a backend that PAM uses for authentication.
13 - Linux-PAM, used on most (all?) Linux distributions. 13 - Linux-PAM, used on most (all?) Linux distributions.
14 - OpenPAM, used on most BSDs, including Mac OS. 14 - OpenPAM, used on most BSDs, including Mac OS.
15 - Sun's PAM, used on Solaris and derivatives like Illumos. 15 - Sun's PAM, used on Solaris and derivatives like Illumos.
16 16
17 Further documentation can be found in the crate's rustdoc. 17 Further documentation can be found in the crate's rustdoc.
18
19 ## Why use nonstick?
20
21 - Safe, idiomatic Rust API.
22 - Supports both modules and client applications.
23 - Works with all PAM implementations.
24 - Does not require system headers.
25 - Few dependencies, fast builds (no `syn`!).
26 - Well-tested on multiple platforms (AMD64 Linux, FreeBSD, and Illumos).
18 27
19 ## Status 28 ## Status
20 29
21 - **Modules**: full support for all calls by PAM into modules. 30 - **Modules**: full support for all calls by PAM into modules.
22 You can use nonstick to implement a PAM module that performs any stage of the PAM lifecycle. 31 You can use nonstick to implement a PAM module that performs any stage of the PAM lifecycle.