A cross-platform Application Programming Interface (API) for the NAHPU specimen cataloging app (work in progress). It handles heavy computation for the app and provides a unified interface for the planned NAHPU suites of command line tools and Python and R libraries.
This workspace consists of several modular crates:
nahpu_archive: A utility crate for archiving and extracting Nahpu project data using zip compression.nahpu_db: Handles database schema and models, auto-generating Rust structs from the NAHPU SQLite Drift schema.nahpu_dwc: Maps and converts NAHPU project data into Darwin Core (DwC) compliant JSON and XML formats.nahpu_export: Renders database records into formatted documents such as Markdown, Typst, and PDF.nahpu_gis: Handles GIS data processing and conversion.
All crates are experimental. Please expect breaking changes and API instability.
cargo install nahpu_apiWhen creating new crates in this workspace, please use snake_case for crate names and their corresponding directories (e.g., nahpu_dwc).
Contributions are welcome! Please see the CONTRIBUTING.md file for details on how to contribute to this project.