-
Notifications
You must be signed in to change notification settings - Fork 0
PACKAGE MAINTAINERS
This document provides essential information for distribution package maintainers.
- Project Name: ThemisDB
- Description: Multi-model database system with ACID transactions
- License: MIT
- Homepage: https://github.com/makr-code/ThemisDB
- Documentation: https://makr-code.github.io/ThemisDB/
- Source: https://github.com/makr-code/ThemisDB
If you are maintaining ThemisDB for a distribution, please add yourself here via pull request:
- Debian/Ubuntu: (seeking maintainer)
- Fedora/RHEL/CentOS: (seeking maintainer)
- Arch Linux (AUR): (seeking maintainer)
- Chocolatey: (seeking maintainer)
- WinGet: (seeking maintainer)
- Homebrew: (seeking maintainer)
Multi-model database with relational, graph, vector, and time-series support
ThemisDB is a high-performance multi-model database system that provides:
- Relational data with secondary indexes (single, composite, range, geo, fulltext, TTL)
- Graph database with BFS, Dijkstra, and A* traversals
- Vector search using HNSW index (L2, Cosine, Dot Product metrics)
- Time-series data with Gorilla compression and continuous aggregates
- Document storage with JSON support
- Full ACID transactions with MVCC (Snapshot Isolation)
- Advanced Query Language (AQL) for hybrid queries across all models
- Enterprise security: TLS 1.3, RBAC, audit logging, secrets management
- Observability: OpenTelemetry tracing and Prometheus metrics
- Change Data Capture (CDC) for real-time event streaming
database, multi-model, graph, vector, timeseries, nosql, acid, mvcc, aql, opentelemetry, prometheus
- Debian: database, devel
- Fedora: Applications/Databases
- Arch: database
- Homebrew: database
- OpenSSL >= 1.1.1 or 3.x
- RocksDB >= 6.11
- Intel TBB >= 2020.0
- Apache Arrow >= 10.0.0
- Boost.System >= 1.71.0
- spdlog >= 1.8.0
- libcurl >= 7.68.0
- yaml-cpp >= 0.6.0
- zstd >= 1.4.0
- Prometheus (for metrics collection)
- HashiCorp Vault (for secrets management)
- OpenTelemetry Collector (for distributed tracing)
In addition to runtime dependencies:
- CMake >= 3.20
- C++20 compatible compiler (GCC 11+, Clang 14+, MSVC 2019+)
- Ninja (recommended) or Make
- Git
- pkg-config
- nlohmann-json >= 3.9.0 (header-only, not runtime dep)
-DCMAKE_BUILD_TYPE=Release
-DTHEMIS_BUILD_TESTS=OFF
-DTHEMIS_BUILD_BENCHMARKS=OFF
-DTHEMIS_ENABLE_GPU=OFF
-DTHEMIS_STRICT_BUILD=OFF
-DBUILD_SHARED_LIBS=OFF-
-DTHEMIS_ENABLE_GPU=ON- Enable GPU acceleration (requires CUDA/Faiss) -
-DTHEMIS_ENABLE_TRACING=ON- Enable OpenTelemetry tracing (default: ON) -
-DTHEMIS_BUILD_TESTS=ON- Build unit tests -
-DTHEMIS_BUILD_BENCHMARKS=ON- Build performance benchmarks
- Binaries:
/usr/bin/themis_server - Libraries:
/usr/lib/libthemis_core.a - Headers:
/usr/include/themis/ - Config:
/etc/themisdb/config.yaml - Data:
/var/lib/themisdb/ - Systemd service:
/lib/systemd/system/themisdb.service
- Binaries:
%ProgramFiles%\ThemisDB\bin\themis_server.exe - Config:
%ProgramData%\ThemisDB\config.yaml - Data:
%ProgramData%\ThemisDB\data\
- Binaries:
$(brew --prefix)/bin/themis_server - Config:
$(brew --prefix)/etc/themisdb/config.yaml - Data:
$(brew --prefix)/var/lib/themisdb/
- System user:
themisdb(created during installation) - System group:
themisdb - Home directory:
/var/lib/themisdb - Shell:
/sbin/nologinor/bin/false
- Config directory: 750 (root:themisdb)
- Config file: 640 (root:themisdb)
- Data directory: 750 (themisdb:themisdb)
- Log files: 640 (themisdb:themisdb)
- Service name:
themisdb.service - Type:
simple - Restart policy:
on-failure - Security: NoNewPrivileges, PrivateTmp, ProtectSystem=strict
- Service name:
homebrew.mxcl.themisdb - KeepAlive: true
- RunAtLoad: true
- Service name:
ThemisDB - Display name:
ThemisDB Database Server - Start type: Automatic
- Recovery: Restart on failure
- HTTP API: 8765 (TCP)
- Health check: Same as API port (
/healthendpoint)
- Packages should NOT automatically open firewall ports
- Document port requirements in README/post-install message
A default configuration file is provided at config/config.yaml. Package maintainers should:
- Install as
/etc/themisdb/config.yaml(Linux) or equivalent - Mark as configuration file (won't be overwritten on upgrade)
- Adjust paths for the target platform
storage:
rocksdb_path: /var/lib/themisdb
server:
host: 0.0.0.0
port: 8765
worker_threads: 8- ThemisDB supports TLS 1.3 for API connections
- Certificates should be managed by system administrators
- No certificates included in package
- Supports HashiCorp Vault integration
- Environment variable fallback for development
- No default secrets in configuration
- May require policy module for custom ports
- File contexts for
/var/lib/themisdb/
- Data format is backward compatible within major versions
- Breaking changes only on major version bumps
- Migration scripts provided when needed
- New configuration options use sensible defaults
- Old configuration files remain valid
- Deprecation warnings logged when using old options
# Check service status
systemctl status themisdb # Linux
brew services list | grep themisdb # macOS
# Test health endpoint
curl http://localhost:8765/health
# Expected response: {"status":"ok","version":"1.0.0"}# Create an entity
curl -X PUT http://localhost:8765/entities/test:1 \
-H "Content-Type: application/json" \
-d '{"blob":"{\"value\":\"test\"}"}'
# Retrieve entity
curl http://localhost:8765/entities/test:1
# Clean up
curl -X DELETE http://localhost:8765/entities/test:1- On Ubuntu 20.04, may need newer Arrow from PPA
- RocksDB 6.11+ recommended for optimal performance
- EPEL required for some dependencies on RHEL/CentOS
- SELinux may need customization for non-standard ports
- All dependencies available in official repos
- No known issues
- Apple Silicon: Uses native ARM64 binaries
- Intel: Uses x86_64 binaries
- OpenSSL from Homebrew required (system OpenSSL deprecated)
- Requires Visual C++ Redistributable 2019 or later
- Windows Defender may scan database files (performance impact)
- Major releases: Annually (1.x.0)
- Minor releases: Quarterly (x.1.0)
- Patch releases: As needed for critical bugs/security (x.x.1)
- Pre-release testing: 2 weeks before release
- Security updates: Within 48 hours of disclosure
- Email: [email protected]
-
GitHub Issues: Tag issues with
packaginglabel - GitHub Discussions: For general questions
We will:
- Notify maintainers 2 weeks before release
- Provide release candidates for testing
- Document breaking changes in CHANGELOG.md
- Tag maintainers in release announcements
- Critical: Immediate notification via email + GitHub Security Advisory
- High: Notification within 24 hours
- Medium/Low: Included in regular release notes
-
Packaging Guide:
docs/packaging.md -
Quick Reference:
docs/PACKAGING-QUICKREF.md - Main Docs: https://makr-code.github.io/ThemisDB/
-
Debian:
debian/* -
RPM:
themisdb.spec -
Arch:
PKGBUILD -
Chocolatey:
packaging/chocolatey/ -
WinGet:
packaging/winget/ -
Homebrew:
packaging/homebrew/themisdb.rb
- All packages are currently built manually/offline
- Use the provided packaging files on target platforms or in Docker containers
- See
docs/packaging.mdfor detailed build instructions - Automated CI/CD may be added in future releases
ThemisDB is licensed under the MIT License. See LICENSE file for full text.
If you find any inaccuracies in this document or have questions, please:
- Open a GitHub issue with the
packaginglabel - Email [email protected]
- Submit a pull request with corrections
Thank you for helping distribute ThemisDB! 🚀
- AQL Overview
- AQL Syntax Reference
- EXPLAIN and PROFILE
- Hybrid Queries
- Pattern Matching
- Subquery Implementation
- Subquery Quick Reference
- Fulltext Release Notes
- Hybrid Search Design
- Fulltext Search API
- Content Search
- Pagination Benchmarks
- Stemming
- Hybrid Fusion API
- Performance Tuning
- Migration Guide
- Storage Overview
- RocksDB Layout
- Geo Schema
- Index Types
- Index Statistics
- Index Backup
- HNSW Persistence
- Vector Index
- Graph Index
- Secondary Index
- Security Overview
- RBAC and Authorization
- TLS Setup
- Certificate Pinning
- Encryption Strategy
- Column Encryption
- Key Management
- Key Rotation
- HSM Integration
- PKI Integration
- eIDAS Signatures
- PII Detection
- PII API
- Threat Model
- Hardening Guide
- Incident Response
- SBOM
- Enterprise Overview
- Scalability Features
- Scalability Strategy
- HTTP Client Pool
- Enterprise Build Guide
- Enterprise Ingestion
- Benchmarks Overview
- Compression Benchmarks
- Compression Strategy
- Memory Tuning
- Hardware Acceleration
- GPU Acceleration Plan
- CUDA Backend
- Vulkan Backend
- Multi-CPU Support
- TBB Integration
- Time Series
- Vector Operations
- Graph Features
- Temporal Graphs
- Path Constraints
- Recursive Queries
- Audit Logging
- Change Data Capture
- Transactions
- Semantic Cache
- Cursor Pagination
- Compliance Features
- GNN Embeddings
- Geo Overview
- Geo Architecture
- 3D Game Acceleration
- Geo Feature Tiering
- G3 Phase 2 Status
- G5 Implementation
- Integration Guide
- Content Architecture
- Content Pipeline
- Content Manager
- JSON Ingestion
- Content Ingestion
- Filesystem API
- Image Processor
- Geo Processor
- Policy Implementation
- Developer Guide
- Implementation Status
- Development Roadmap
- Build Strategy
- Build Acceleration
- Code Quality Guide
- AQL LET Implementation
- Audit API Implementation
- SAGA API Implementation
- PKI eIDAS
- WAL Archiving
- Architecture Overview
- Strategic Overview
- Ecosystem
- MVCC Design
- Base Entity
- Caching Strategy
- Caching Data Structures
- Docker Build
- Docker Status
- Multi-Arch CI/CD
- ARM Build Guide
- ARM Packages
- Raspberry Pi Tuning
- Packaging Guide
- Package Maintainers
- Roadmap
- Changelog
- Database Capabilities
- Implementation Summary
- Sachstandsbericht 2025
- Enterprise Final Report
- Test Report
- Build Success Report
- Integration Analysis
- Source Overview
- API Implementation
- Query Engine
- Storage Layer
- Security Implementation
- CDC Implementation
- Time Series
- Utils and Helpers
Updated: 2025-11-30