29 releases (15 stable)

new 4.0.0 Jul 28, 2026
3.0.6 Oct 10, 2025
3.0.5 Feb 21, 2025
3.0.4 Apr 8, 2024
0.2.0 Mar 14, 2016

#11 in Cryptography

Download history 3666132/week @ 2026-04-12 3562750/week @ 2026-04-19 3898080/week @ 2026-04-26 4094199/week @ 2026-05-03 4816939/week @ 2026-05-10 4766889/week @ 2026-05-17 4582648/week @ 2026-05-24 4739044/week @ 2026-05-31 4656721/week @ 2026-06-07 4634947/week @ 2026-06-14 4562732/week @ 2026-06-21 4085134/week @ 2026-06-28 4467518/week @ 2026-07-05 5050514/week @ 2026-07-12 5306895/week @ 2026-07-19 5614849/week @ 2026-07-26

20,776,192 downloads per month
Used in 6,198 crates (385 directly)

MIT license

47KB
829 lines

pem

A Rust library for parsing and encoding PEM-encoded data.

Build Status

Documentation

Module documentation with examples

Usage

Add this to your Cargo.toml:

[dependencies]
pem = "3.0"

Here is a simple example that parse PEM-encoded data and prints the tag:

use pem::parse;

const SAMPLE: &'static str = "-----BEGIN RSA PRIVATE KEY-----
MIIBPQIBAAJBAOsfi5AGYhdRs/x6q5H7kScxA0Kzzqe6WI6gf6+tc6IvKQJo5rQc
dWWSQ0nRGt2hOPDO+35NKhQEjBQxPh/v7n0CAwEAAQJBAOGaBAyuw0ICyENy5NsO
2gkT00AWTSzM9Zns0HedY31yEabkuFvrMCHjscEF7u3Y6PB7An3IzooBHchsFDei
AAECIQD/JahddzR5K3A6rzTidmAf1PBtqi7296EnWv8WvpfAAQIhAOvowIXZI4Un
DXjgZ9ekuUjZN+GUQRAVlkEEohGLVy59AiEA90VtqDdQuWWpvJX0cM08V10tLXrT
TTGsEtITid1ogAECIQDAaFl90ZgS5cMrL3wCeatVKzVUmuJmB/VAmlLFFGzK0QIh
ANJGc7AFk4fyFD/OezhwGHbWmo/S+bfeAiIh2Ss2FxKJ
-----END RSA PRIVATE KEY-----
";

let pem = parse(SAMPLE)?;
println!("PEM tag: {}", pem.tag);

Dependencies

~325–495KB