feat: restore comprehensive feature sections to README
- Add back MAJOR UPDATES section highlighting v0.51, v0.49, v0.48, v0.46 - Include Build Amazing Things section with comprehensive use cases - Restore framework examples (React, Angular, Vue) with full code samples - Add Distributed Mode section with multi-instance coordination - Keep problem-focused opening while providing deep feature coverage - Balance quick start with comprehensive capabilities showcase
This commit is contained in:
parent
bd5e0d5827
commit
11c7aa78d4
1 changed files with 244 additions and 9 deletions
253
README.md
253
README.md
|
|
@ -69,6 +69,66 @@ const results = await brainy.search("AI language models", 5, {
|
||||||
|
|
||||||
**That's it. You just built a knowledge graph with semantic search and faceted filtering in 8 lines.**
|
**That's it. You just built a knowledge graph with semantic search and faceted filtering in 8 lines.**
|
||||||
|
|
||||||
|
## 🔥 MAJOR UPDATES: What's New in v0.51, v0.49 & v0.48
|
||||||
|
|
||||||
|
### 🎯 **v0.51: Revolutionary Developer Experience**
|
||||||
|
|
||||||
|
**Problem-focused approach that gets you productive in seconds!**
|
||||||
|
|
||||||
|
- ✅ **Problem-Solution Narrative** - Immediately understand why Brainy exists
|
||||||
|
- ✅ **8-Line Quickstart** - Three search types in one simple demo
|
||||||
|
- ✅ **Streamlined Documentation** - Focus on what matters most
|
||||||
|
- ✅ **Clear Positioning** - The only true Vector + Graph database
|
||||||
|
|
||||||
|
### 🎯 **v0.49: Filter Discovery & Performance Improvements**
|
||||||
|
|
||||||
|
**Discover available filters and scale to millions of items!**
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Discover what filters are available - O(1) field lookup
|
||||||
|
const categories = await brainy.getFilterValues('category')
|
||||||
|
// Returns: ['electronics', 'books', 'clothing', ...]
|
||||||
|
|
||||||
|
const fields = await brainy.getFilterFields() // O(1) operation
|
||||||
|
// Returns: ['category', 'price', 'brand', 'rating', ...]
|
||||||
|
```
|
||||||
|
|
||||||
|
- ✅ **Filter Discovery API**: O(1) field discovery for instant filter UI generation
|
||||||
|
- ✅ **Improved Performance**: Removed deprecated methods, now uses pagination everywhere
|
||||||
|
- ✅ **Better Scalability**: Hybrid indexing with O(1) field access scales to millions
|
||||||
|
- ✅ **Smart Caching**: LRU cache for frequently accessed filters
|
||||||
|
- ✅ **Zero Configuration**: Everything auto-optimizes based on usage patterns
|
||||||
|
|
||||||
|
### 🚀 **v0.48: MongoDB-Style Metadata Filtering**
|
||||||
|
|
||||||
|
**Powerful querying with familiar syntax - filter DURING search for maximum performance!**
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const results = await brainy.search("wireless headphones", 10, {
|
||||||
|
metadata: {
|
||||||
|
category: { $in: ["electronics", "audio"] },
|
||||||
|
price: { $lte: 200 },
|
||||||
|
rating: { $gte: 4.0 },
|
||||||
|
brand: { $ne: "Generic" }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
- ✅ **15+ MongoDB Operators**: `$gt`, `$in`, `$regex`, `$and`, `$or`, `$includes`, etc.
|
||||||
|
- ✅ **Automatic Indexing**: Zero configuration, maximum performance
|
||||||
|
- ✅ **Nested Fields**: Use dot notation for complex objects
|
||||||
|
- ✅ **100% Backward Compatible**: Your existing code works unchanged
|
||||||
|
|
||||||
|
### ⚡ **v0.46: Transformers.js Migration**
|
||||||
|
|
||||||
|
**Replaced TensorFlow.js for better performance and true offline operation!**
|
||||||
|
|
||||||
|
- ✅ **95% Smaller Package**: 643 kB vs 12.5 MB
|
||||||
|
- ✅ **84% Smaller Models**: 87 MB vs 525 MB models
|
||||||
|
- ✅ **True Offline**: Zero network calls after initial download
|
||||||
|
- ✅ **5x Fewer Dependencies**: Clean tree, no peer dependency issues
|
||||||
|
- ✅ **Same API**: Drop-in replacement, existing code works unchanged
|
||||||
|
|
||||||
## 🏆 Why Brainy Wins
|
## 🏆 Why Brainy Wins
|
||||||
|
|
||||||
- 🧠 **Triple Search Power** - Vector + Graph + Faceted filtering in one query
|
- 🧠 **Triple Search Power** - Vector + Graph + Faceted filtering in one query
|
||||||
|
|
@ -84,27 +144,164 @@ const results = await brainy.search("AI language models", 5, {
|
||||||
- **⚡ LLM Generation** - Built-in content generation powered by your knowledge graph
|
- **⚡ LLM Generation** - Built-in content generation powered by your knowledge graph
|
||||||
- **🌊 Real-time Sync** - Live updates across distributed instances
|
- **🌊 Real-time Sync** - Live updates across distributed instances
|
||||||
|
|
||||||
## 🎯 Perfect For
|
## 🎨 Build Amazing Things
|
||||||
|
|
||||||
**🤖 AI Chat Applications** - ChatGPT-like apps with long-term memory and context
|
**🤖 AI Chat Applications** - Build ChatGPT-like apps with long-term memory and context awareness
|
||||||
**🔍 Semantic Search** - Find "that thing like a cat but bigger" → returns "tiger"
|
**🔍 Semantic Search Engines** - Search by meaning, not keywords. Find "that thing that's like a cat but bigger" → returns "tiger"
|
||||||
**🧬 Knowledge Graphs** - Connect everything. Wikipedia meets Neo4j meets magic
|
|
||||||
**🎯 Recommendation Engines** - "Users who liked this also liked..." but actually good
|
**🎯 Recommendation Engines** - "Users who liked this also liked..." but actually good
|
||||||
**📚 Smart Documentation** - Docs that answer questions before you ask them
|
**🧬 Knowledge Graphs** - Connect everything to everything. Wikipedia meets Neo4j meets magic
|
||||||
|
**👁️ Computer Vision Apps** - Store and search image embeddings. "Find all photos with dogs wearing hats"
|
||||||
|
**🎵 Music Discovery** - Find songs that "feel" similar. Spotify's Discover Weekly in your app
|
||||||
|
**📚 Smart Documentation** - Docs that answer questions. "How do I deploy to production?" → relevant guides
|
||||||
|
**🛡️ Fraud Detection** - Find patterns humans can't see. Anomaly detection on steroids
|
||||||
|
**🌐 Real-Time Collaboration** - Sync vector data across devices. Figma for AI data
|
||||||
|
**🏥 Medical Diagnosis Tools** - Match symptoms to conditions using embedding similarity
|
||||||
|
|
||||||
## 🌍 Works Everywhere - Same Code
|
## 🌍 Works Everywhere - Same Code
|
||||||
|
|
||||||
|
**Write once, run anywhere.** Brainy auto-detects your environment and optimizes automatically:
|
||||||
|
|
||||||
|
### 🌐 Browser Frameworks (React, Angular, Vue)
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// This EXACT code works in ALL environments
|
|
||||||
import { BrainyData } from '@soulcraft/brainy'
|
import { BrainyData } from '@soulcraft/brainy'
|
||||||
|
|
||||||
|
// SAME CODE in React, Angular, Vue, Svelte, etc.
|
||||||
const brainy = new BrainyData()
|
const brainy = new BrainyData()
|
||||||
await brainy.init()
|
await brainy.init() // Auto-uses OPFS in browsers
|
||||||
|
|
||||||
// Works in: React, Vue, Angular, Node.js, Deno, Bun,
|
// Add entities and relationships
|
||||||
// Cloudflare Workers, Vercel Edge, AWS Lambda, browsers, anywhere
|
const john = await brainy.add("John is a software engineer", { type: "person" })
|
||||||
|
const jane = await brainy.add("Jane is a data scientist", { type: "person" })
|
||||||
|
const ai = await brainy.add("AI Project", { type: "project" })
|
||||||
|
|
||||||
|
await brainy.relate(john, ai, "works_on")
|
||||||
|
await brainy.relate(jane, ai, "leads")
|
||||||
|
|
||||||
|
// Search by meaning
|
||||||
|
const engineers = await brainy.search("software developers", 5)
|
||||||
|
|
||||||
|
// Traverse relationships
|
||||||
|
const team = await brainy.getVerbsByTarget(ai) // Who works on AI Project?
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>📦 <strong>Full React Component Example</strong></summary>
|
||||||
|
|
||||||
|
```jsx
|
||||||
|
import { BrainyData } from '@soulcraft/brainy'
|
||||||
|
import { useEffect, useState } from 'react'
|
||||||
|
|
||||||
|
function Search() {
|
||||||
|
const [brainy, setBrainy] = useState(null)
|
||||||
|
const [results, setResults] = useState([])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const init = async () => {
|
||||||
|
const db = new BrainyData()
|
||||||
|
await db.init()
|
||||||
|
// Add your data...
|
||||||
|
setBrainy(db)
|
||||||
|
}
|
||||||
|
init()
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
const search = async (query) => {
|
||||||
|
const results = await brainy?.search(query, 5) || []
|
||||||
|
setResults(results)
|
||||||
|
}
|
||||||
|
|
||||||
|
return <input onChange={(e) => search(e.target.value)} placeholder="Search..." />
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>📦 <strong>Full Angular Component Example</strong></summary>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { Component, signal, OnInit } from '@angular/core'
|
||||||
|
import { BrainyData } from '@soulcraft/brainy'
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-search',
|
||||||
|
template: `<input (input)="search($event.target.value)" placeholder="Search...">`
|
||||||
|
})
|
||||||
|
export class SearchComponent implements OnInit {
|
||||||
|
brainy = new BrainyData()
|
||||||
|
|
||||||
|
async ngOnInit() {
|
||||||
|
await this.brainy.init()
|
||||||
|
// Add your data...
|
||||||
|
}
|
||||||
|
|
||||||
|
async search(query: string) {
|
||||||
|
const results = await this.brainy.search(query, 5)
|
||||||
|
// Display results...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>📦 <strong>Full Vue Example</strong></summary>
|
||||||
|
|
||||||
|
```vue
|
||||||
|
<script setup>
|
||||||
|
import { BrainyData } from '@soulcraft/brainy'
|
||||||
|
import { ref, onMounted } from 'vue'
|
||||||
|
|
||||||
|
const brainy = ref(null)
|
||||||
|
const results = ref([])
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const db = new BrainyData()
|
||||||
|
await db.init()
|
||||||
|
// Add your data...
|
||||||
|
brainy.value = db
|
||||||
|
})
|
||||||
|
|
||||||
|
const search = async (query) => {
|
||||||
|
const results = await brainy.value?.search(query, 5) || []
|
||||||
|
setResults(results)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<input @input="search($event.target.value)" placeholder="Search..." />
|
||||||
|
</template>
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### 🟢 Node.js / Serverless / Edge
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { BrainyData } from '@soulcraft/brainy'
|
||||||
|
|
||||||
|
// SAME CODE works in Node.js, Vercel, Netlify, Cloudflare Workers, Deno, Bun
|
||||||
|
const brainy = new BrainyData()
|
||||||
|
await brainy.init() // Auto-detects environment and optimizes
|
||||||
|
|
||||||
|
// Add entities and relationships
|
||||||
|
await brainy.add("Python is great for data science", { type: "fact" })
|
||||||
|
await brainy.add("JavaScript rules the web", { type: "fact" })
|
||||||
|
|
||||||
|
// Search by meaning
|
||||||
|
const results = await brainy.search("programming languages", 5)
|
||||||
|
|
||||||
|
// Optional: Production with S3/R2 storage (auto-detected in cloud environments)
|
||||||
|
const productionBrainy = new BrainyData({
|
||||||
|
storage: {
|
||||||
|
s3Storage: { bucketName: process.env.BUCKET_NAME }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
**That's it! Same code, everywhere. Zero-to-Smart™**
|
||||||
|
|
||||||
Brainy automatically detects and optimizes for your environment:
|
Brainy automatically detects and optimizes for your environment:
|
||||||
|
|
||||||
| Environment | Storage | Optimization |
|
| Environment | Storage | Optimization |
|
||||||
|
|
@ -114,6 +311,44 @@ Brainy automatically detects and optimizes for your environment:
|
||||||
| ⚡ Serverless | S3 / Memory | Cold Start Optimization |
|
| ⚡ Serverless | S3 / Memory | Cold Start Optimization |
|
||||||
| 🔥 Edge | Memory / KV | Minimal Footprint |
|
| 🔥 Edge | Memory / KV | Minimal Footprint |
|
||||||
|
|
||||||
|
## 🌐 Distributed Mode (NEW!)
|
||||||
|
|
||||||
|
**Scale horizontally with zero configuration!** Brainy now supports distributed deployments with automatic coordination:
|
||||||
|
|
||||||
|
- **🌐 Multi-Instance Coordination** - Multiple readers and writers working in harmony
|
||||||
|
- **🏷️ Smart Domain Detection** - Automatically categorizes data (medical, legal, product, etc.)
|
||||||
|
- **📊 Real-Time Health Monitoring** - Track performance across all instances
|
||||||
|
- **🔄 Automatic Role Optimization** - Readers optimize for cache, writers for throughput
|
||||||
|
- **🗂️ Intelligent Partitioning** - Hash-based partitioning for perfect load distribution
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Writer Instance - Ingests data from multiple sources
|
||||||
|
const writer = new BrainyData({
|
||||||
|
storage: { s3Storage: { bucketName: 'my-bucket' } },
|
||||||
|
distributed: { role: 'writer' } // Explicit role for safety
|
||||||
|
})
|
||||||
|
|
||||||
|
// Reader Instance - Optimized for search queries
|
||||||
|
const reader = new BrainyData({
|
||||||
|
storage: { s3Storage: { bucketName: 'my-bucket' } },
|
||||||
|
distributed: { role: 'reader' } // 80% memory for cache
|
||||||
|
})
|
||||||
|
|
||||||
|
// Data automatically gets domain tags
|
||||||
|
await writer.add("Patient shows symptoms of...", {
|
||||||
|
diagnosis: "flu" // Auto-tagged as 'medical' domain
|
||||||
|
})
|
||||||
|
|
||||||
|
// Domain-aware search across all partitions
|
||||||
|
const results = await reader.search("medical symptoms", 10, {
|
||||||
|
filter: { domain: 'medical' } // Only search medical data
|
||||||
|
})
|
||||||
|
|
||||||
|
// Monitor health across all instances
|
||||||
|
const health = reader.getHealthStatus()
|
||||||
|
console.log(`Instance ${health.instanceId}: ${health.status}`)
|
||||||
|
```
|
||||||
|
|
||||||
## 🆚 Why Not Just Use...?
|
## 🆚 Why Not Just Use...?
|
||||||
|
|
||||||
### vs. Multiple Databases
|
### vs. Multiple Databases
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue