Not every project needs a database server.
For small to mid-scale applications, noneDB delivers the performance you need
without the infrastructure overhead.
Built for simplicity and performance
O(1) key lookups with JSONL byte-offset indexing. Static cache sharing across instances.
Automatically splits large datasets into shards for optimal performance at scale.
Atomic file locking ensures safe concurrent access from multiple processes.
GeoJSON support with R-tree indexing. Find nearby locations in milliseconds.
Fluent interface with MongoDB-style operators. Chain methods for complex queries.
PBKDF2 hashed filenames. No external exposure of database structure.
When you need a database, not an infrastructure
Ship faster without database setup
Admin panels, dashboards, utilities
Articles, pages, simple CMS
App configuration, user preferences
Event tracking, activity logs
Store locators, geo-based features
10K+ records? No problem. Auto-sharding keeps performance consistent as your data grows.
One command. That's all it takes.
$ composer require orhanayd/nonedb
Requires PHP 7.4+ β’ No extensions needed β’ Works on any hosting
Simple, intuitive API that just works
// Initialize
$db = new noneDB();
// Create
$db->insert("users", [
"name" => "John Doe",
"email" => "john@example.com",
"role" => "admin"
]);
// Read
$user = $db->query("users")
->where(["email" => "john@example.com"])
->first();
// Update
$db->query("users")
->where(["email" => "john@example.com"])
->update(["role" => "superadmin"]);
// Delete
$db->query("users")
->where(["email" => "john@example.com"])
->delete();
// Fluent query builder
$users = $db->query("users")
->where(["role" => "admin"])
->where(["age" => ['$gte' => 18]])
->sort("created_at", "desc")
->limit(10)
->get();
// Aggregations
$avg = $db->query("orders")
->where(["status" => "completed"])
->avg("total");
// Search
$results = $db->query("posts")
->search("PHP database", ["title", "content"])
->get();
// Create spatial index
$db->createSpatialIndex("places", "location");
// Insert GeoJSON data
$db->insert("places", [
"name" => "Coffee Shop",
"location" => [
"type" => "Point",
"coordinates" => [28.9784, 41.0082]
]
]);
// Find places within 5km
$nearby = $db->query("places")
->withinDistance("location", 28.9784, 41.0082, 5000)
->withDistance("location", 28.9784, 41.0082)
->sort("_distance", "asc")
->get();
Ready for more? Check out the full documentation.
Join developers who chose simplicity over complexity.