Introduction to OstrichDB
Introduction to OstrichDB
Section titled “Introduction to OstrichDB”OstrichDB is an open-source hierarchical NoSQL database system designed for efficient data organization and retrieval. This implementation provides the core database engine functionality with a RESTful API server, written entirely in the Odin programming language.
What is OstrichDB?
Section titled “What is OstrichDB?”Open-Ostrich is the open-source version of OstrichDB, a hierarchical NoSQL database that organizes data in a structured, nested format. Unlike traditional relational databases, OstrichDB uses a hierarchical approach that makes it ideal for organizing complex, nested data structures.
Key Features
Section titled “Key Features”Hierarchical Data Organization
Section titled “Hierarchical Data Organization”OstrichDB organizes data in a natural hierarchy:
- Projects contain Collections
- Collections contain Clusters
- Clusters contain Records
This structure provides intuitive data organization and efficient querying capabilities.
Rich Data Types
Section titled “Rich Data Types”Support for a wide variety of data types including:
- Basic types (strings, integers, floats, booleans)
- Date and time types
- Arrays of all basic types
- UUIDs and encrypted credentials
Security First
Section titled “Security First”- End-to-end encryption with user-specific master keys
- JWT-based authentication
- User isolation with multi-tenant architecture
- Secure operations with automatic encrypt/decrypt cycles
RESTful API
Section titled “RESTful API”Complete REST API with comprehensive endpoints for all database operations, including advanced filtering and search capabilities.
Architecture Overview
Section titled “Architecture Overview”OstrichDB is built with a modular architecture:
- Engine: Core database engine and data processing logic
- Server: HTTP server with RESTful API endpoints
- Data Layer: Handles Collections, Clusters, and Records
- Security: Encryption, decryption, and key management
- Configuration: Dynamic configuration management
- Projects: User isolation and project lifecycle management
Use Cases
Section titled “Use Cases”OstrichDB is ideal for applications that need:
- Hierarchical data organization
- Multi-tenant data isolation
- Strong security and encryption
- Flexible querying capabilities
- RESTful API access
- Rich data type support
Getting Started
Section titled “Getting Started”Ready to start using OstrichDB? Continue to the Installation guide to set up your development environment.