Writing your own connector

See the CONNECTORS.md guide in the repo for the full walkthrough, but here's the shape:

#![allow(unused)]
fn main() {
use federiq_core::{AttachCtx, Connector};

pub struct MyConnector {
    /* your config */
}

impl Connector for MyConnector {
    fn kind(&self) -> &'static str { "mysource" }

    fn attach(&self, ctx: &AttachCtx<'_>) -> anyhow::Result<()> {
        // 1. Fetch rows from the remote source.
        // 2. Write them as NDJSON to ctx.tmpdir.
        // 3. CREATE OR REPLACE VIEW <ctx.alias> AS SELECT * FROM read_json_auto('...');
        Ok(())
    }
}
}

A dynamic plugin system (WASM components loaded from ~/.federiq/plugins) is on the roadmap so third parties can ship connectors without recompiling FederIQ.