Getting Started
Welcome to Fluree! This section will guide you through the essential steps to start using Fluree for your graph database needs.
Quick Navigation
Fluree for SQL Developers
Coming from PostgreSQL, MySQL, or SQL Server? This guide maps SQL concepts to Fluree equivalents, shows the same operations in both languages, and highlights where Fluree gives you capabilities that relational databases don't have.
Quickstart: Run the Server
Get Fluree up and running in minutes. Learn how to:
- Install and run the Fluree server
- Configure basic settings
- Verify the server is running
- Access the HTTP API
Quickstart: Create a Ledger
Create your first ledger to store data. Learn how to:
- Create a new ledger using the API
- Understand ledger IDs and branching
- Set up initial configuration
- Verify ledger creation
Quickstart: Write Data
Start writing data to your ledger. Learn how to:
- Insert new entities (basic inserts)
- Upsert data (idempotent transactions; predicate-level replacement for supplied predicates)
- Update existing data (WHERE/DELETE/INSERT pattern)
- Understand JSON-LD transaction format
Quickstart: Query Data
Query your data using Fluree's powerful query languages. Learn how to:
- Write basic JSON-LD queries
- Write basic SPARQL queries
- Filter and select data
- Understand query results
Tutorial: End-to-End
Build a knowledge base that combines Fluree's differentiating features in one workflow:
- Full-text search with BM25 relevance ranking
- Time travel to compare current and historical state
- Branching to experiment safely
- Policies for role-based access control
Using Fluree as a Rust Library
Embed Fluree directly in your Rust applications. Learn how to:
- Add Fluree as a dependency in Cargo.toml
- Use the Rust API programmatically
- Implement common patterns (insert, query, update)
- Integrate BM25 and vector search
- Handle errors and configuration
- Write tests with Fluree
What is Fluree?
Fluree is a temporal graph database that stores data as RDF triples with built-in support for:
- Time Travel: Query data as it existed at any point in time
- Full-Text Search: Integrated BM25 indexing for powerful text search
- Vector Search: Approximate nearest neighbor (ANN) queries
- Policy Enforcement: Fine-grained, data-level access control
- Verifiable Data: Cryptographically signed transactions
- Graph Sources: Integration with external data sources (Iceberg, R2RML)
Learning Path
For HTTP API users (server-based):
- Bridge the gap: Fluree for SQL Developers if coming from relational databases
- Start with the Server: Run the Server to get Fluree running
- Create Your First Ledger: Create a Ledger to set up your database
- Add Data: Write Data to insert your first entities
- Query Your Data: Query Data to retrieve and explore
- See it all together: End-to-End Tutorial — search, time travel, branching, and policies in one workflow
- Core Concepts: Read Concepts to understand Fluree's architecture
- Practical Guides: Explore Cookbooks for search, time travel, branching, policies, and SHACL validation
- Deep Dive: Explore Query, Transactions, and Security
- Production Ready: Review Operations for deployment guidance
For Rust developers (embedded library):
- Rust API Guide: Using Fluree as a Rust Library for embedding Fluree in your application
- Core Concepts: Concepts to understand how Fluree works
- Practical Guides: Cookbooks for search, time travel, branching, policies, and validation
- Advanced Queries: Query for complex query patterns
- Transactions: Transactions for data modification patterns
- Production Ready: Operations and Dev Setup
Prerequisites
- Familiarity with JSON format
- HTTP client (curl, Postman, or your programming language's HTTP library)
- No graph database or RDF experience required — Fluree for SQL Developers bridges the gap from relational databases
Support and Resources
- Documentation: This documentation provides comprehensive coverage
- API Reference: See HTTP API for endpoint details
- Troubleshooting: Check Troubleshooting for common issues
Let's get started!