Skip to content

Commit 99cc048

Browse files
authored
Merge branch 'develop' into feat/crewai-orchestrator
2 parents ec2e3e1 + 98b792d commit 99cc048

341 files changed

Lines changed: 16326 additions & 15230 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,28 @@ jobs:
7878
build_stamp: ${{ needs.init.outputs.build_stamp }}
7979
secrets: inherit
8080

81+
# ---------------------------------------------------------------------------
82+
# Build passthrough — when build is skipped (docs-only PRs), report success
83+
# under the same check names so branch protection required checks pass.
84+
# ---------------------------------------------------------------------------
85+
build-skip:
86+
name: Build / ${{ matrix.label }}
87+
needs: [init, changes]
88+
if: >-
89+
always() &&
90+
needs.init.result == 'success' &&
91+
github.event_name == 'pull_request' &&
92+
needs.changes.outputs.code != 'true'
93+
runs-on: ubuntu-latest
94+
strategy:
95+
matrix:
96+
include:
97+
- label: Ubuntu 22.04
98+
- label: Windows Server 2022
99+
- label: macOS (ARM64)
100+
steps:
101+
- run: echo "Build skipped — no code changes detected"
102+
81103
# ---------------------------------------------------------------------------
82104
# CodeQL — scheduled + push only (not on PRs to avoid blocking releases)
83105
# ---------------------------------------------------------------------------
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Discord Discussion Notification
2+
3+
on:
4+
discussion:
5+
types: [created]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
notify:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Post to Discord
15+
env:
16+
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_DISCUSSIONS_WEBHOOK_URL }}
17+
DISCUSSION_TITLE: ${{ github.event.discussion.title }}
18+
DISCUSSION_URL: ${{ github.event.discussion.html_url }}
19+
DISCUSSION_BODY: ${{ github.event.discussion.body }}
20+
DISCUSSION_AUTHOR: ${{ github.event.discussion.user.login }}
21+
DISCUSSION_AVATAR: ${{ github.event.discussion.user.avatar_url }}
22+
DISCUSSION_NUMBER: ${{ github.event.discussion.number }}
23+
DISCUSSION_CATEGORY: ${{ github.event.discussion.category.name }}
24+
run: |
25+
# Truncate body and close unclosed code blocks
26+
BODY="${DISCUSSION_BODY:0:1500}"
27+
BACKTICK_COUNT=$(echo "$BODY" | grep -o '```' | wc -l)
28+
if (( BACKTICK_COUNT % 2 != 0 )); then
29+
BODY="${DISCUSSION_BODY:0:1500}..."$'\n```'
30+
fi
31+
32+
PAYLOAD=$(jq -n \
33+
--arg title "#$DISCUSSION_NUMBER $DISCUSSION_TITLE" \
34+
--arg url "$DISCUSSION_URL" \
35+
--arg desc "$BODY" \
36+
--arg author "$DISCUSSION_AUTHOR" \
37+
--arg avatar "$DISCUSSION_AVATAR" \
38+
--arg category "$DISCUSSION_CATEGORY" \
39+
--arg repo "$GITHUB_REPOSITORY" \
40+
'{embeds: [{title: $title, url: $url, description: $desc, color: 10181046,
41+
author: {name: $author, url: ("https://github.com/" + $author), icon_url: $avatar},
42+
fields: [
43+
{name: "Category", value: $category, inline: true},
44+
{name: "Repo", value: $repo, inline: true}
45+
]}]}')
46+
curl -sS -f -H "Content-Type: application/json" -d "$PAYLOAD" "$DISCORD_WEBHOOK_URL"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Discord Issue Notification
2+
3+
on:
4+
issues:
5+
types: [opened]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
notify:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Post to Discord
15+
env:
16+
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_ISSUES_WEBHOOK_URL }}
17+
ISSUE_TITLE: ${{ github.event.issue.title }}
18+
ISSUE_URL: ${{ github.event.issue.html_url }}
19+
ISSUE_BODY: ${{ github.event.issue.body }}
20+
ISSUE_AUTHOR: ${{ github.event.issue.user.login }}
21+
ISSUE_AVATAR: ${{ github.event.issue.user.avatar_url }}
22+
ISSUE_NUMBER: ${{ github.event.issue.number }}
23+
run: |
24+
# Truncate body and close unclosed code blocks
25+
BODY="${ISSUE_BODY:0:1500}"
26+
BACKTICK_COUNT=$(echo "$BODY" | grep -o '```' | wc -l)
27+
if (( BACKTICK_COUNT % 2 != 0 )); then
28+
BODY="${ISSUE_BODY:0:1500}..."$'\n```'
29+
fi
30+
31+
PAYLOAD=$(jq -n \
32+
--arg title "#$ISSUE_NUMBER $ISSUE_TITLE" \
33+
--arg url "$ISSUE_URL" \
34+
--arg desc "$BODY" \
35+
--arg author "$ISSUE_AUTHOR" \
36+
--arg avatar "$ISSUE_AVATAR" \
37+
--arg repo "$GITHUB_REPOSITORY" \
38+
'{embeds: [{title: $title, url: $url, description: $desc, color: 15548997,
39+
author: {name: $author, url: ("https://github.com/" + $author), icon_url: $avatar},
40+
fields: [
41+
{name: "Repo", value: $repo, inline: true}
42+
]}]}')
43+
curl -sS -f -H "Content-Type: application/json" -d "$PAYLOAD" "$DISCORD_WEBHOOK_URL"

.github/workflows/discord-pr.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Discord PR Notification
2+
3+
on:
4+
pull_request:
5+
types: [opened]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
notify:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Post to Discord
15+
env:
16+
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_PR_WEBHOOK_URL }}
17+
PR_TITLE: ${{ github.event.pull_request.title }}
18+
PR_URL: ${{ github.event.pull_request.html_url }}
19+
PR_BODY: ${{ github.event.pull_request.body }}
20+
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
21+
PR_AVATAR: ${{ github.event.pull_request.user.avatar_url }}
22+
HEAD_REF: ${{ github.event.pull_request.head.ref }}
23+
BASE_REF: ${{ github.event.pull_request.base.ref }}
24+
PR_NUMBER: ${{ github.event.pull_request.number }}
25+
run: |
26+
# Truncate body to 1500 chars (leave room for embed fields).
27+
# Close any unclosed code blocks to prevent broken formatting.
28+
BODY="${PR_BODY:0:1500}"
29+
BACKTICK_COUNT=$(echo "$BODY" | grep -o '```' | wc -l)
30+
if (( BACKTICK_COUNT % 2 != 0 )); then
31+
BODY="${BODY}..."$'\n'"$BODY"'```'
32+
BODY="${PR_BODY:0:1500}..."$'\n```'
33+
fi
34+
35+
PAYLOAD=$(jq -n \
36+
--arg title "#$PR_NUMBER $PR_TITLE" \
37+
--arg url "$PR_URL" \
38+
--arg desc "$BODY" \
39+
--arg author "$PR_AUTHOR" \
40+
--arg avatar "$PR_AVATAR" \
41+
--arg branch "$HEAD_REF → $BASE_REF" \
42+
--arg repo "$GITHUB_REPOSITORY" \
43+
'{embeds: [{title: $title, url: $url, description: $desc, color: 5814783,
44+
author: {name: $author, url: ("https://github.com/" + $author), icon_url: $avatar},
45+
fields: [
46+
{name: "Branch", value: $branch, inline: true},
47+
{name: "Repo", value: $repo, inline: true}
48+
]}]}')
49+
curl -sS -f -H "Content-Type: application/json" -d "$PAYLOAD" "$DISCORD_WEBHOOK_URL"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,4 @@ downloads/maven-3.9.6.tar.gz
222222

223223
# One of the python modules keeps installing this
224224
include/python3.12/greenlet/greenlet.h
225+
.rocketride/

.vscode/launch.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@
2828
"subProcess": true,
2929
"cwd": "${workspaceFolder}/dist/server",
3030
"program": "${workspaceFolder}/dist/server/ai/eaas.py",
31-
"args": [
32-
"--trace=servicePython"
33-
// "--trace=debugOut,debugProtocol,servicePython"
34-
]
31+
"args": ["--trace=debugOut"]
3532
},
3633
{
3734
//--------------------------------------------------------------------------------------

README.md

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
</p>
1111

1212
<p>
13-
RocketRide is an open-source data pipeline builder and runtime built for AI and ML workloads. With 50+ pipeline nodes spanning 13 LLM providers, 8 vector databases, OCR, NER, and more — pipelines are defined as portable JSON, built visually in VS Code, and executed by a multithreaded C++ runtime. From real-time data processing to multimodal AI search, RocketRide runs entirely on your own infrastructure.
13+
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/icon-cpp.png" alt="C++" />&nbsp;&nbsp;
14+
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/icon-python.png" alt="Python" />&nbsp;&nbsp;
15+
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/icon-typescript.png" alt="TypeScript" />
1416
</p>
1517

1618
<p>
17-
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/icon-cpp.png" height="28" alt="C++" />&nbsp;&nbsp;
18-
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/icon-python.png" height="28" alt="Python" />&nbsp;&nbsp;
19-
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/icon-typescript.png" height="28" alt="TypeScript" />
19+
RocketRide is an open-source data pipeline builder and runtime built for AI and ML workloads. With 50+ pipeline nodes spanning 13 LLM providers, 8 vector databases, OCR, NER, and more — pipelines are defined as portable JSON, built visually in VS Code, and executed by a multithreaded C++ runtime. From real-time data processing to multimodal AI search, RocketRide runs entirely on your own infrastructure.
2020
</p>
2121

2222
<p>
@@ -29,17 +29,11 @@
2929

3030
<p>
3131
<a href="https://github.com/rocketride-org/rocketride-server/actions/workflows/ci.yml"><img src="https://github.com/rocketride-org/rocketride-server/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
32-
<a href="https://github.com/rocketride-org/rocketride-server/releases/tag/server-v3.1.0"><img src="https://img.shields.io/badge/engine-v3.1.0-5f2167?logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTEgMTkxIj48cGF0aCBkPSJNMTU5LjUgMTYxLjRMMTUzLjcgMTY3LjJDMTUxLjkgMTY5IDE0OC45IDE2OSAxNDcgMTY3LjJMMTI2LjYgMTQ2LjhDMTE1LjYgMTM1LjggMTE1LjYgMTE4IDEyNi42IDEwN0MxMzguMSA5NS41IDEzOC4xIDc2LjkgMTI2LjYgNjUuNEwxMjUuMSA2My45QzExMy42IDUyLjQgOTUgNTIuNCA4My41IDYzLjlDNzIuNSA3NC45IDU0LjYgNzQuOSA0My42IDYzLjlMMjMuMiA0My41QzIxLjQgNDEuNyAyMS40IDM4LjcgMjMuMiAzNi44TDI5IDMxQzM3IDIzIDQ5LjEgMjAuNSA1OS42IDI0LjlMODcuNSAzNi4zQzk3LjMgNDAuMSAxMDguNCAzOCAxMTYuMyAzMS4xTDEzNyAxMC40QzEzOC42IDguOSAxNDAuNCA3LjQgMTQyLjUgNi4yQzE0Ni4yIDQuMSAxNTAuMyAzIDE1NC41IDIuNkwxODUuNCAwQzE4OC4zLS4zIDE5MC44IDIuMiAxOTAuNSA1LjFMMTg3LjggMzYuNEMxODcuMyA0Mi44IDE4NC41IDQ4LjggMTgwLjEgNTMuNUwxNjAuNSA3My4xQzE1Mi41IDgxLjIgMTUwLjEgOTMuMyAxNTQuNSAxMDMuOEwxNTUuNSAxMDYuMkwxNjEuMiAxMjBMMTY1LjYgMTMwLjlDMTY5LjkgMTQxLjQgMTY3LjUgMTUzLjUgMTU5LjUgMTYxLjVaIiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0uOCAxOTAuM0MtLjIgMTg5LjMtLjMgMTg3LjYuNiAxODYuNEwyMS4xIDE2MkMzMS4xIDE1MCAzNy45IDEzNy43IDQxLjMgMTI1LjNDNDMuNiAxMTYuNiA0NC42IDEwOC41IDQ0LjEgMTAxLjJDNDQuMSAxMDAuMyA0NC40IDk5LjQgNDUuMSA5OC44QzQ1LjggOTguMiA0Ni44IDk3LjkgNDcuNyA5OC4xQzY1IDEwMS42IDgzLjUgOTguMyA5OC41IDg4LjlDOTkuNiA4OC4yIDEwMS4xIDg4LjQgMTAyIDg5LjNDMTAyLjkgOTAuMiAxMDMuMSA5MS43IDEwMi40IDkyLjhDOTMgMTA3LjggODkuNyAxMjYuMyA5My4yIDE0My41QzkzLjQgMTQ0LjMgOTMuMiAxNDUuMiA5Mi42IDE0NS45QzkyIDE0Ni42IDkxIDE0Ny4yIDkwLjEgMTQ3LjFDODIuOCAxNDYuNiA3NC42IDE0Ny41IDY2IDE0OS45QzUzLjYgMTUzLjIgNDEuMiAxNjAgMjkuMyAxNzAuMUw0LjkgMTkwLjZDMy44IDE5MS41IDIuMSAxOTEuNSAxIDE5MC40SC44WiIgZmlsbD0iI0Y5MzgyMiIvPjwvc3ZnPgo=" alt="Engine v3.1.0"></a>
32+
<a href="https://github.com/rocketride-org/rocketride-server/releases/tag/server-v3.1.0"><img src="https://img.shields.io/badge/Runtime-v3.1.0-5f2167?logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTEgMTkxIj48cGF0aCBkPSJNMTU5LjUgMTYxLjRMMTUzLjcgMTY3LjJDMTUxLjkgMTY5IDE0OC45IDE2OSAxNDcgMTY3LjJMMTI2LjYgMTQ2LjhDMTE1LjYgMTM1LjggMTE1LjYgMTE4IDEyNi42IDEwN0MxMzguMSA5NS41IDEzOC4xIDc2LjkgMTI2LjYgNjUuNEwxMjUuMSA2My45QzExMy42IDUyLjQgOTUgNTIuNCA4My41IDYzLjlDNzIuNSA3NC45IDU0LjYgNzQuOSA0My42IDYzLjlMMjMuMiA0My41QzIxLjQgNDEuNyAyMS40IDM4LjcgMjMuMiAzNi44TDI5IDMxQzM3IDIzIDQ5LjEgMjAuNSA1OS42IDI0LjlMODcuNSAzNi4zQzk3LjMgNDAuMSAxMDguNCAzOCAxMTYuMyAzMS4xTDEzNyAxMC40QzEzOC42IDguOSAxNDAuNCA3LjQgMTQyLjUgNi4yQzE0Ni4yIDQuMSAxNTAuMyAzIDE1NC41IDIuNkwxODUuNCAwQzE4OC4zLS4zIDE5MC44IDIuMiAxOTAuNSA1LjFMMTg3LjggMzYuNEMxODcuMyA0Mi44IDE4NC41IDQ4LjggMTgwLjEgNTMuNUwxNjAuNSA3My4xQzE1Mi41IDgxLjIgMTUwLjEgOTMuMyAxNTQuNSAxMDMuOEwxNTUuNSAxMDYuMkwxNjEuMiAxMjBMMTY1LjYgMTMwLjlDMTY5LjkgMTQxLjQgMTY3LjUgMTUzLjUgMTU5LjUgMTYxLjVaIiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0uOCAxOTAuM0MtLjIgMTg5LjMtLjMgMTg3LjYuNiAxODYuNEwyMS4xIDE2MkMzMS4xIDE1MCAzNy45IDEzNy43IDQxLjMgMTI1LjNDNDMuNiAxMTYuNiA0NC42IDEwOC41IDQ0LjEgMTAxLjJDNDQuMSAxMDAuMyA0NC40IDk5LjQgNDUuMSA5OC44QzQ1LjggOTguMiA0Ni44IDk3LjkgNDcuNyA5OC4xQzY1IDEwMS42IDgzLjUgOTguMyA5OC41IDg4LjlDOTkuNiA4OC4yIDEwMS4xIDg4LjQgMTAyIDg5LjNDMTAyLjkgOTAuMiAxMDMuMSA5MS43IDEwMi40IDkyLjhDOTMgMTA3LjggODkuNyAxMjYuMyA5My4yIDE0My41QzkzLjQgMTQ0LjMgOTMuMiAxNDUuMiA5Mi42IDE0NS45QzkyIDE0Ni42IDkxIDE0Ny4yIDkwLjEgMTQ3LjFDODIuOCAxNDYuNiA3NC42IDE0Ny41IDY2IDE0OS45QzUzLjYgMTUzLjIgNDEuMiAxNjAgMjkuMyAxNzAuMUw0LjkgMTkwLjZDMy44IDE5MS41IDIuMSAxOTEuNSAxIDE5MC40SC44WiIgZmlsbD0iI0Y5MzgyMiIvPjwvc3ZnPgo=" alt="Engine v3.1.0"></a>
3333
<a href="https://discord.gg/9hr3tdZmEG"><img src="https://img.shields.io/badge/Discord-Join-370b7a?logo=discord&logoColor=white" alt="Discord"></a>
34-
<a href="https://github.com/rocketride-org/rocketride-server/blob/develop/LICENSE"><img src="https://img.shields.io/badge/license-MIT-41b6e6" alt="MIT License"></a>
35-
</p>
36-
37-
<p>
38-
<a href="https://www.producthunt.com/products/rocketride?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_campaign=badge-rocketride" target="_blank" rel="noopener noreferrer"><img alt="RocketRide - Your IDE is the new AI command center. | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1112116&amp;theme=light&amp;t=1774995997490"></a>
34+
<a href="https://github.com/rocketride-org/rocketride-server/blob/develop/LICENSE"><img src="https://img.shields.io/badge/License-MIT-41b6e6" alt="MIT License"></a>
3935
</p>
4036

41-
</div>
42-
4337
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/screenshot-ide.png" alt="Build and run AI pipelines inside your IDE" width="100%">
4438

4539
_Design, test, and ship complex AI workflows from a visual canvas, right where you write code._
@@ -48,16 +42,20 @@ _Design, test, and ship complex AI workflows from a visual canvas, right where y
4842

4943
_Drop pipelines into any Python or TypeScript app with a few lines of code, no infrastructure glue required._
5044

45+
</div>
46+
5147
## Features
5248

53-
- **VS Code Extension** — Build, visualize, and monitor pipelines directly in your editor. The visual pipeline builder lets you drag, connect, and configure nodes without writing boilerplate. Real-time observability tracks token usage, LLM calls, latency, and execution — all without leaving VS Code. Pipelines are defined as portable JSON, meaning they're version-controllable, shareable, and runnable anywhere.
54-
- **High-performance C++ runtime** — RocketRide's runtime is built in C++ with native multithreading, purpose-built for the throughput demands of AI and data workloads. No bottlenecks, no compromises for production scale.
55-
- **50+ pipeline nodes** — A comprehensive library of pre-built nodes covering 13 LLM providers, 8 vector databases, OCR, NER, PII anonymization, chunking strategies, embedding models, and more. All nodes are Python-extensible, so you can build and publish your own.
56-
- **Multi-agent workflows** — Orchestrate and scale complex agent pipelines with built-in support for CrewAI and LangChain. Chain agents, share memory across pipeline runs, and manage multi-step reasoning workflows at scale. Switch between agentic frameworks with a few clicks for your task.
57-
- **Coding agent ready** — Install the VS Code extension and RocketRide automatically detects and configures your coding agent — Claude, Cursor, and more. Your agent can build, modify, and deploy pipelines through natural language.
58-
- **TypeScript, Python & MCP SDKs** — Integrate pipelines into native applications, expose them as callable tools for AI assistants, or build programmatic pipeline workflows into your existing codebase.
59-
- **Zero dependency headaches** — RocketRide manages Python environments, C++ toolchains, Java/Tika, and all node dependencies automatically. Clone, build, run — no manual setup, no version conflicts, no glue scripts.
60-
- **One-click deploy** — Run on Docker, on-prem, or RocketRide Cloud (coming soon). RocketRide's architecture is designed for production from day one — not retrofitted from a demo.
49+
| Feature | Description |
50+
| :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51+
| **Visual Pipeline Builder** | Drag, connect, and configure nodes in VS Code — no boilerplate. Real-time observability tracks token usage, LLM calls, latency, and execution. Pipelines are portable JSON — version-controllable, shareable, and runnable anywhere. |
52+
| **High-Performance C++ Runtime** | Native multithreading purpose-built for the throughput demands of AI and data workloads. No bottlenecks, no compromises for production scale. |
53+
| **50+ Pipeline Nodes** | 13 LLM providers, 8 vector databases, OCR, NER, PII anonymization, chunking strategies, embedding models, and more. All nodes are Python-extensible — build and publish your own. |
54+
| **Multi-Agent Workflows** | Built-in CrewAI and LangChain support. Chain agents, share memory across pipeline runs, and manage multi-step reasoning at scale. |
55+
| **Coding Agent Ready** | RocketRide auto-detects your coding agent — Claude, Cursor, and more. Build, modify, and deploy pipelines through natural language. |
56+
| **TypeScript, Python & MCP SDKs** | Integrate pipelines into native apps, expose them as callable tools for AI assistants, or build programmatic workflows into your existing codebase. |
57+
| **Zero Dependency Headaches** | Python environments, C++ toolchains, Java/Tika, and all node dependencies managed automatically. Clone, build, run — no manual setup. |
58+
| **One-Click Deploy** | Run on Docker, on-prem, or RocketRide Cloud (coming soon). Production-ready architecture from day one — not retrofitted from a demo. |
6159

6260
## Quick Start
6361

@@ -88,7 +86,7 @@ _Drop pipelines into any Python or TypeScript app with a few lines of code, no i
8886
<img src="https://raw.githubusercontent.com/rocketride-org/rocketride-server/develop/images/first_pipe.gif" alt="Pipeline canvas example" width="100%">
8987
</p>
9088

91-
4. You can run a pipeline from the canvas by pressing the ▶ button on the source node or from the `Connection Manager` directly.
89+
4. You can run a pipeline from the canvas by pressing the ▶ button on the source node or from the `Connection Manager` directly.
9290

9391
5. Deploy your pipelines on your own infrastructure.
9492

@@ -121,4 +119,4 @@ RocketRide is built by a growing community of contributors. Whether you've fixed
121119
122120
---
123121
124-
<p align="center">Made with 🤍 in SF & EU</p>
122+
<p align="center">Made with in SF &amp; EU</p>

0 commit comments

Comments
 (0)