Skip to content

Commit

Permalink
Merge pull request #109 from rush-db/feature/update-readme-add-python…
Browse files Browse the repository at this point in the history
…-docs

Update readme, website, add python package and examples
  • Loading branch information
1pxone authored Feb 3, 2025
2 parents 1eff9f5 + 85038ac commit 7dcf6db
Show file tree
Hide file tree
Showing 15 changed files with 1,443 additions and 61 deletions.
9 changes: 9 additions & 0 deletions .changeset/old-hounds-flash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
'@rushdb/javascript-sdk': minor
'rushdb-dashboard': minor
'rushdb-core': minor
'rushdb-website': minor
'rushdb-docs': minor
---

Update readme, website, add python package and examples
138 changes: 113 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,13 @@
# RushDB
### The Instant Database for Modern Apps and DS/ML Ops

RushDB is an open-source database built on Neo4j, designed to simplify application development.
RushDB is an instant database for modern apps and DS/ML ops built on top of Neo4j.

It automates data normalization, manages relationships, and infers data types, enabling developers to focus on building features rather than wrestling with data.

[🌐 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)
</div>

## 🚀 Feature Highlights

### 1. **Data modeling is optional**
Push data of any shape—RushDB handles relationships, data types, and more automatically.

### 2. **Automatic type inference**
Minimizes overhead while optimizing performance for high-speed searches.

### 3. **Powerful search API**
Query data with accuracy using the graph-powered search API.

### 4. **Flexible data import**
Easily import data in `JSON`, `CSV`, or `JSONB`, creating data-rich applications fast.

### 5. **Developer-Centric Design**
RushDB prioritizes DX with an intuitive and consistent API.

### 6. **REST API Readiness**
A REST API with SDK-like DX for every operation: manage relationships, create, delete, and search effortlessly. Same DTO everywhere.

---

## Setup
Expand Down Expand Up @@ -123,6 +103,42 @@ Before running the container, ensure you provide the following required environm

---

<details>
<summary>Development Setup with local Neo4j [DOCKER COMPOSE]</summary>

```yaml
version: '3.8'
services:
rushdb:
image: rushdb/platform
container_name: rushdb
depends_on:
neo4j:
condition: service_healthy
ports:
- "3000:3000"
environment:
- NEO4J_URL=bolt://neo4j
- NEO4J_USERNAME=neo4j
- NEO4J_PASSWORD=password
neo4j:
image: neo4j:5.25.1
healthcheck:
test: [ "CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1" ]
interval: 5s
retries: 30
start_period: 10s
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_AUTH=neo4j/password
- NEO4J_PLUGINS=["apoc"]
```
</details>


### **CLI Commands**

The RushDB CLI allows you to manage users in self-hosted installations. Below are the available commands:
Expand Down Expand Up @@ -166,8 +182,82 @@ This command updates the password for an existing user identified by the provide
2. **Build Anything**:
Easily push, search, and manage relationships within your data.

### With Python

Explore the [Documentation](https://docs.rushdb.com/python-sdk/records-api)

#### Install the SDK

```bash
pip install rushdb
```

#### Push any json data

```python
from rushdb import RushDB
db = RushDB(
"rushdb-api-key",
# Default URL; only override if necessary.
base_url="https://api.rushdb.com",
)
db.records.create_many(
"COMPANY",
{
"name": "Google LLC",
"address": "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
"foundedAt": "1998-09-04T00:00:00.000Z",
"rating": 4.9,
"DEPARTMENT": [
{
"name": "Research & Development",
"description": "Innovating and creating advanced technologies for AI, cloud computing, and consumer devices.",
"tags": ["AI", "Cloud Computing", "Research"],
"profitable": true,
"PROJECT": [
{
"name": "Bard AI",
"description": "A state-of-the-art generative AI model for natural language understanding and creation.",
"active": true,
"budget": 1200000000,
"EMPLOYEE": [
{
"name": "Jeff Dean",
"position": "Head of AI Research",
"email": "jeff@google.com",
"salary": 3000000,
}
],
}
],
}
],
},
)
```

#### Find Records by specific criteria
```python
# Find Records by specific criteria
matched_employees = db.records.find(
{
"labels": ["EMPLOYEE"],
"where": {
"position": {"$contains": "AI"},
"PROJECT": {"DEPARTMENT": {"COMPANY": {"rating": {"$gte": 4}}}},
},
}
)
```
---

### With TypeScript / JavaScript

Explore the [Documentation](https://docs.rushdb.com)

#### Install the SDK

```bash
Expand Down Expand Up @@ -238,6 +328,8 @@ const company = await db.records.findUniq('COMPANY', {

### With REST API and cURL

Explore the [Documentation](https://docs.rushdb.com)

#### Specify API base URL

- **RushDB Cloud**: `https://api.rushdb.com`
Expand Down Expand Up @@ -298,10 +390,6 @@ curl -X POST https://api.rushdb.com/api/v1/records/search \
}'
```

<div align="center">
<b>You Rock</b> 🚀
</div>

---

<div align="center" style="margin-top: 20px">
Expand Down
6 changes: 6 additions & 0 deletions docs/docs/python-sdk/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"label": "Python SDK",
"position": 3,
"collapsed": false,
"collapsible": false
}
Loading

0 comments on commit 7dcf6db

Please sign in to comment.