InGraph

Declare your data. It’s agent-ready.

InGraph is a schema-driven data framework for AI applications. Define your schema and write your handlers. Its compiler generates Rust code that wires up storage, indexing, and GraphQL/MCP access.

Build faster · Change freely · Stay private

Schema

Define the schema. Compile to Rust.

schema @graph(version: 1, generations: db,  agent: { version: "0.1", recipes: [Ask] }) {  query: Query} extend schema  @resource(name: db, sqlite: {})  @resource(name: ft, fts5: {})  @resource(name: vectors, lance: {})  @resource(name: objects, fs: {})  @source(name: folder, type: Folder)  @operator(name: demux, type: Demux,    subscribe: { node: folder }, emits: [Video, Frames, Audio])  @operator(name: pickKeyframes, type: Keyframes,    subscribe: { node: demux, out: Frames }, emits: [Keyframe])  @service(name: imageEncoder, type: ImageEncoder)  @operator(name: embedFrames, type: EmbedFrames,    subscribe: { node: Keyframe }, emits: [FramePoint], service: imageEncoder)  @tower(name: textTower, type: TextTower)  @service(name: speechToText, type: SpeechToText)  @operator(name: transcribe, type: Transcribe,    subscribe: { node: demux, out: Audio }, emits: [Segment], service: speechToText) type Ask @search(question: String, root: Video, dedup: HASH, limit: 20) {  pictures: KeyframeVectors @tower(question: textTower)  speech: SegmentText}

Engine

Connect any source. Serve every agent.

The inputs are Video, Audio, Live, Images, Documents, Streams, Agent memory and APIs. The first six enter Sources, and Agent memory and APIs write through Mutations.

In Your InGraph app, Sources feed the first Handlers, which call Models and write Records and Blobs. The Records feed Aggregates and a second layer of Handlers, which call Models and write Vectors, Records and Full-text. Search reads the three and answers. The app is checked before it runs.

The outputs are Apps (GraphQL), Agents (MCP) and Replicas (Followers).

The data backend is built in. Its eight capabilities are Sources, Operators, Compute, Storage, Retrieval, Pipelines, Versions and Replication.

Your InGraph app
Sources@source
Mutations@source(mutation)
Models@service
Handlers@operator(subscribe = Sources)
Aggregates@aggregate(upstream = Records)
Records@record
Blobs@blob
Models@service
Handlers@operator(subscribe = Records)
Vectors@vector
Records@record
Full-text@fulltext
Search@search(Vectors + Full-text, tower)
Checked before it runs

The data backend, built in

Inputs enter Sources, handlers write records, and Search serves apps, agents and replicas.

Less backend. More product.