|
5 | 5 | # RushDB
|
6 | 6 | ### The Instant Database for Modern Apps and DS/ML Ops
|
7 | 7 |
|
8 |
| -RushDB is an open-source database built on Neo4j, designed to simplify application development. |
| 8 | +RushDB is an instant database for modern apps and DS/ML ops built on top of Neo4j. |
9 | 9 |
|
10 | 10 | It automates data normalization, manages relationships, and infers data types, enabling developers to focus on building features rather than wrestling with data.
|
11 | 11 |
|
12 | 12 | [🌐 Homepage](https://rushdb.com) — [📢 Blog](https://rushdb.com/blog) — [☁️ Platform ](https://app.rushdb.com) — [📖 Docs](https://docs.rushdb.com) — [🧑💻 Examples](https://github.com/rush-db/examples)
|
13 | 13 | </div>
|
14 | 14 |
|
15 |
| -## 🚀 Feature Highlights |
16 |
| - |
17 |
| -### 1. **Data modeling is optional** |
18 |
| -Push data of any shape—RushDB handles relationships, data types, and more automatically. |
19 |
| - |
20 |
| -### 2. **Automatic type inference** |
21 |
| -Minimizes overhead while optimizing performance for high-speed searches. |
22 |
| - |
23 |
| -### 3. **Powerful search API** |
24 |
| -Query data with accuracy using the graph-powered search API. |
25 |
| - |
26 |
| -### 4. **Flexible data import** |
27 |
| -Easily import data in `JSON`, `CSV`, or `JSONB`, creating data-rich applications fast. |
28 |
| - |
29 |
| -### 5. **Developer-Centric Design** |
30 |
| -RushDB prioritizes DX with an intuitive and consistent API. |
31 |
| - |
32 |
| -### 6. **REST API Readiness** |
33 |
| -A REST API with SDK-like DX for every operation: manage relationships, create, delete, and search effortlessly. Same DTO everywhere. |
34 |
| - |
35 | 15 | ---
|
36 | 16 |
|
37 | 17 | ## Setup
|
@@ -123,6 +103,42 @@ Before running the container, ensure you provide the following required environm
|
123 | 103 |
|
124 | 104 | ---
|
125 | 105 |
|
| 106 | +<details> |
| 107 | + <summary>Development Setup with local Neo4j [DOCKER COMPOSE]</summary> |
| 108 | + |
| 109 | + ```yaml |
| 110 | + version: '3.8' |
| 111 | + services: |
| 112 | + rushdb: |
| 113 | + image: rushdb/platform |
| 114 | + container_name: rushdb |
| 115 | + depends_on: |
| 116 | + neo4j: |
| 117 | + condition: service_healthy |
| 118 | + ports: |
| 119 | + - "3000:3000" |
| 120 | + environment: |
| 121 | + - NEO4J_URL=bolt://neo4j |
| 122 | + - NEO4J_USERNAME=neo4j |
| 123 | + - NEO4J_PASSWORD=password |
| 124 | + neo4j: |
| 125 | + image: neo4j:5.25.1 |
| 126 | + healthcheck: |
| 127 | + test: [ "CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1" ] |
| 128 | + interval: 5s |
| 129 | + retries: 30 |
| 130 | + start_period: 10s |
| 131 | + ports: |
| 132 | + - "7474:7474" |
| 133 | + - "7687:7687" |
| 134 | + environment: |
| 135 | + - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes |
| 136 | + - NEO4J_AUTH=neo4j/password |
| 137 | + - NEO4J_PLUGINS=["apoc"] |
| 138 | + ``` |
| 139 | +</details> |
| 140 | + |
| 141 | + |
126 | 142 | ### **CLI Commands**
|
127 | 143 |
|
128 | 144 | The RushDB CLI allows you to manage users in self-hosted installations. Below are the available commands:
|
@@ -166,8 +182,82 @@ This command updates the password for an existing user identified by the provide
|
166 | 182 | 2. **Build Anything**:
|
167 | 183 | Easily push, search, and manage relationships within your data.
|
168 | 184 |
|
| 185 | +### With Python |
| 186 | + |
| 187 | +Explore the [Documentation](https://docs.rushdb.com/python-sdk/records-api) |
| 188 | + |
| 189 | +#### Install the SDK |
| 190 | + |
| 191 | +```bash |
| 192 | +pip install rushdb |
| 193 | +``` |
| 194 | + |
| 195 | +#### Push any json data |
| 196 | + |
| 197 | +```python |
| 198 | +from rushdb import RushDB |
| 199 | +
|
| 200 | +db = RushDB( |
| 201 | + "rushdb-api-key", |
| 202 | + # Default URL; only override if necessary. |
| 203 | + base_url="https://api.rushdb.com", |
| 204 | +) |
| 205 | +
|
| 206 | +db.records.create_many( |
| 207 | + "COMPANY", |
| 208 | + { |
| 209 | + "name": "Google LLC", |
| 210 | + "address": "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA", |
| 211 | + "foundedAt": "1998-09-04T00:00:00.000Z", |
| 212 | + "rating": 4.9, |
| 213 | + "DEPARTMENT": [ |
| 214 | + { |
| 215 | + "name": "Research & Development", |
| 216 | + "description": "Innovating and creating advanced technologies for AI, cloud computing, and consumer devices.", |
| 217 | + "tags": ["AI", "Cloud Computing", "Research"], |
| 218 | + "profitable": true, |
| 219 | + "PROJECT": [ |
| 220 | + { |
| 221 | + "name": "Bard AI", |
| 222 | + "description": "A state-of-the-art generative AI model for natural language understanding and creation.", |
| 223 | + "active": true, |
| 224 | + "budget": 1200000000, |
| 225 | + "EMPLOYEE": [ |
| 226 | + { |
| 227 | + "name": "Jeff Dean", |
| 228 | + "position": "Head of AI Research", |
| 229 | + |
| 230 | + "salary": 3000000, |
| 231 | + } |
| 232 | + ], |
| 233 | + } |
| 234 | + ], |
| 235 | + } |
| 236 | + ], |
| 237 | + }, |
| 238 | +) |
| 239 | +``` |
| 240 | + |
| 241 | +#### Find Records by specific criteria |
| 242 | +```python |
| 243 | +# Find Records by specific criteria |
| 244 | +matched_employees = db.records.find( |
| 245 | + { |
| 246 | + "labels": ["EMPLOYEE"], |
| 247 | + "where": { |
| 248 | + "position": {"$contains": "AI"}, |
| 249 | + "PROJECT": {"DEPARTMENT": {"COMPANY": {"rating": {"$gte": 4}}}}, |
| 250 | + }, |
| 251 | + } |
| 252 | +) |
| 253 | +
|
| 254 | +``` |
| 255 | +--- |
| 256 | + |
169 | 257 | ### With TypeScript / JavaScript
|
170 | 258 |
|
| 259 | +Explore the [Documentation](https://docs.rushdb.com) |
| 260 | + |
171 | 261 | #### Install the SDK
|
172 | 262 |
|
173 | 263 | ```bash
|
@@ -238,6 +328,8 @@ const company = await db.records.findUniq('COMPANY', {
|
238 | 328 |
|
239 | 329 | ### With REST API and cURL
|
240 | 330 |
|
| 331 | +Explore the [Documentation](https://docs.rushdb.com) |
| 332 | + |
241 | 333 | #### Specify API base URL
|
242 | 334 |
|
243 | 335 | - **RushDB Cloud**: `https://api.rushdb.com`
|
@@ -298,10 +390,6 @@ curl -X POST https://api.rushdb.com/api/v1/records/search \
|
298 | 390 | }'
|
299 | 391 | ```
|
300 | 392 |
|
301 |
| -<div align="center"> |
302 |
| -<b>You Rock</b> 🚀 |
303 |
| -</div> |
304 |
| - |
305 | 393 | ---
|
306 | 394 |
|
307 | 395 | <div align="center" style="margin-top: 20px">
|
|
0 commit comments