Expand description
Database source port — query databases as pipeline data sources Database source port — query databases as pipeline data sources.
Defines the DataSourcePort trait for executing queries against
relational or document databases and returning results as
serde_json::Value rows.
§Architecture
stygian-graph
├─ DataSourcePort (this file) ← always compiled
└─ Adapters (adapters/)
└─ DatabaseSource (feature="postgres") → sqlx PgPool§Example
use stygian_graph::ports::data_source::{DataSourcePort, QueryParams};
use serde_json::json;
async fn query<D: DataSourcePort>(db: &D) {
let params = QueryParams {
query: "SELECT id, name FROM users WHERE active = $1".into(),
parameters: vec![json!(true)],
limit: Some(100),
};
let rows = db.query(params).await.unwrap();
for row in &rows {
println!("{row}");
}
}Structs§
- Query
Params - Parameters for a database query.
Traits§
- Data
Source Port - Port: query a database and return rows as JSON values.