-
Notifications
You must be signed in to change notification settings - Fork 39
System Overview
RocketRide Engine is a high-performance, modular data processing engine. This page describes its layered architecture, key modules, and how they fit together.
The engine is organized into four layers, from bottom to top:
┌─────────────────────────────────────────────────────────────┐
│ Applications │
│ Chat UI · Dropper UI · VSCode Extension · Engine CLI │
├─────────────────────────────────────────────────────────────┤
│ Client Libraries │
│ TypeScript SDK · Python SDK · MCP Protocol Client │
├─────────────────────────────────────────────────────────────┤
│ Engine Layer │
│ Pipeline Orchestrator · AI/ML Modules · 50+ Nodes · Tika │
├─────────────────────────────────────────────────────────────┤
│ Core Library (C++ apLib) │
│ async · crypto · file · json · memory · network · string · │
│ threading │
└─────────────────────────────────────────────────────────────┘
The foundation layer (packages/server/engine-core) provides low-level primitives: asynchronous I/O, cryptography, file system operations, JSON parsing, memory management, networking, string utilities, and threading. Written in C++17 and compiled via CMake.
The engine layer (packages/server/engine-lib) builds on the core library to provide:
- Pipeline Orchestrator -- loads pipeline JSON definitions, instantiates nodes, manages data flow between them, and handles lifecycle events.
- Node Runtime -- hosts 50+ Python-based pipeline nodes for LLMs, vector stores, embeddings, document processing, and more.
-
AI/ML Modules (
packages/ai) -- shared AI utilities and model integrations. -
Tika Integration (
packages/tika) -- Apache Tika for parsing documents (PDF, DOCX, XLSX, images, etc.).
Three client libraries connect to the engine over WebSocket using the DAP (Debug Adapter Protocol):
| Library | Package | Language |
|---|---|---|
| TypeScript SDK |
rocketride (npm) |
TypeScript/JavaScript |
| Python SDK |
rocketride (PyPI) |
Python 3.8+ |
| MCP Client | packages/client-mcp |
TypeScript |
Clients accept http://, https://, ws://, or wss:// URIs. HTTP/HTTPS URIs are automatically upgraded to WebSocket.
-
Chat UI (
apps/chat-ui) -- React web interface for chatting with pipelines. -
Dropper UI (
apps/dropper-ui) -- React web interface for drag-and-drop file ingestion. -
VSCode Extension (
apps/vscode) -- VSCode extension for building and testing pipelines. -
Engine CLI (
apps/engine) -- the main engine executable, runnable as a standalone pipeline runner or as a persistent service.
All client-to-engine communication uses WebSocket with the DAP (Debug Adapter Protocol) message format. The engine exposes a single WebSocket endpoint at /task/service on its configured port.
RocketRide uses a custom declarative JavaScript build system (./builder). It orchestrates builds across all modules -- C++, TypeScript, Python, and Java -- without relying on npm scripts. See Module Guide for per-module build commands.
rocketride-server/
├── apps/ # Runnable applications
│ ├── engine/ # Engine executable (C++)
│ ├── chat-ui/ # Chat web interface (React)
│ ├── dropper-ui/ # File dropper interface (React)
│ └── vscode/ # VSCode extension
├── packages/ # Reusable libraries
│ ├── server/
│ │ ├── engine-core/ # Core library (apLib, C++)
│ │ └── engine-lib/ # Engine library (engLib, C++)
│ ├── client-typescript/ # TypeScript SDK
│ ├── client-python/ # Python SDK
│ ├── client-mcp/ # MCP Protocol client
│ ├── ai/ # AI/ML modules
│ ├── tika/ # Tika integration
│ ├── java/ # JDK & Maven tooling
│ ├── vcpkg/ # C++ package manager
│ └── shared-ui/ # Shared React components
├── nodes/ # Pipeline nodes (Python)
│ └── src/nodes/ # Individual node implementations
├── scripts/ # Build system scripts
├── test/ # Integration tests
└── testdata/ # Test fixtures
- Data Flow -- how data moves through pipelines
- Module Guide -- detailed module table with build commands
- Component Reference -- all 50+ pipeline nodes
Getting Started
Architecture
API Reference
Contributing
Governance