Skip to main content

rd_helpdb/
lib.rs

1//! Reader for installed R package help databases (aliases, `.rdx`/`.rdb`,
2//! topic metadata, help-search, vignette, and demo indexes), built on top of `rd-rds`.
3//!
4//! An installed package directory looks like:
5//!
6//! ```text
7//! <pkg_dir>/help/<pkg>.rdx       # RDS file: index
8//! <pkg_dir>/help/<pkg>.rdb       # concatenated binary records
9//! <pkg_dir>/help/aliases.rds     # RDS: named character vector alias -> topic
10//! <pkg_dir>/Meta/Rd.rds          # RDS: topic metadata, independent of help files
11//! <pkg_dir>/Meta/hsearch.rds     # RDS: help-search index
12//! <pkg_dir>/Meta/vignette.rds    # optional RDS: vignette data frame
13//! <pkg_dir>/Meta/demo.rds        # optional RDS: two-column demo matrix
14//! ```
15//!
16//! `rd-helpdb` does not discover installed packages (R's `.libPaths()`
17//! logic is out of scope): [`PackageHelpDb::open`] takes an explicit
18//! package directory.
19//! [`HelpTopicIndex::read_installed`] reads topic metadata without requiring
20//! the compiled help database, allowing consumers to retain title-only help.
21
22mod db;
23pub mod demo;
24mod error;
25mod rds;
26pub mod topics;
27mod util;
28pub mod vignette;
29
30pub use db::PackageHelpDb;
31pub use demo::{DemoEntry, DemoIndex};
32pub use error::Error;
33pub use rds::{decode_rdb_record, read_rds_file};
34pub use topics::{HelpTopicEntry, HelpTopicIndex, HelpTopicText};
35pub use vignette::{VignetteEntry, VignetteIndex};