embassy_arxiv/lib.rs
1// Copyright 2024-2026 Reflective Labs
2// SPDX-License-Identifier: MIT
3
4//! arXiv port — preprint metadata via the OAI-PMH and Atom APIs.
5//!
6//! Sovereign integration in the embassy sense: this port's identity
7//! and contract (auth, ToS, rate-limit) are part of the API surface
8//! and cannot be abstracted behind a generic transport.
9//!
10//! ## Status
11//!
12//! **Skeleton only.** The typed domain has a minimal placeholder
13//! shape — newtype identifier + a bare `Paper` carrier. The
14//! Provider trait + `StubArxivProvider` are defined so callers can
15//! depend on the surface, but the live HTTP/API implementation is
16//! deferred until an app pulls hard enough to justify the work.
17//!
18//! Grow the domain types at that time, not before.
19
20mod error;
21mod provenance;
22mod provider;
23mod suggestor;
24mod types;
25
26pub use embassy_pack::{CallContext, Observation, content_hash};
27
28pub use error::ArxivError;
29pub use provenance::{ARXIV_PROVENANCE, Arxiv};
30pub use provider::{ArxivProvider, ArxivRequest, ArxivResponse, StubArxivProvider};
31pub use suggestor::{ArxivLookupSuggestor, ArxivPaperPayload};
32pub use types::{ArxivId, Paper};