8 unstable releases (3 breaking)
Uses new Rust 2024
| new 0.4.0 | May 21, 2026 |
|---|---|
| 0.3.5 | Mar 30, 2026 |
| 0.3.0 | Feb 26, 2026 |
| 0.2.2 | Feb 6, 2026 |
| 0.1.1 | Dec 28, 2025 |
#296 in HTTP client
Used in 2 crates
525KB
10K
SLoC
Ceres Client - HTTP clients for external APIs
This crate provides HTTP clients for interacting with:
ckan- CKAN open data portalsportal- Unified portal client factory (enum dispatch over portal types)gemini- Google Gemini embeddings APIopenai- OpenAI embeddings APIollama- Ollama local embeddings
Overview
The clients handle authentication, request building, response parsing, and error handling for their respective APIs.
Portal Clients
Multiple portal types are supported via PortalClientEnum:
| Portal Type | Status | API |
|---|---|---|
| CKAN | Supported | CKAN API |
| DCAT-AP (udata REST) | Supported | DCAT-AP |
| DCAT-AP (SPARQL) | Supported | SPARQL endpoint with DCAT vocabulary |
| Socrata | Planned | Socrata API |
Embedding Providers
Multiple embedding providers are supported:
| Provider | Model | Dimensions |
|---|---|---|
| Gemini | gemini-embedding-001 | 768 |
| OpenAI | text-embedding-3-small | 1536 |
| OpenAI | text-embedding-3-large | 3072 |
| Ollama | nomic-embed-text | 768 |
| Ollama | mxbai-embed-large | 1024 |
ceres-client
The external communication layer for Ceres.
This crate handles connections to external systems used by Ceres: portal APIs for harvesting and embedding providers for optional vector generation.
What it provides
- Portal Clients: CKAN harvesting plus current DCAT udata support.
- Embedding Providers: Ollama, Gemini, and OpenAI via the
EmbeddingProvidertrait. - HTTP Handling: Robust request handling with retries.
Current focus
- Harvest compatibility: normalize heterogeneous portal responses into the shared
NewDatasetmodel. - Local-first embedding: Ollama support keeps embedding optional and self-hostable.
- Provider dispatch: enum-based factories bridge runtime configuration with async traits.
Dependencies
~50MB
~826K SLoC