auula/urnadb

UrnaDB is a NoSQL database support diverse data types and transactions.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 45 minutes ago
Added to GitGenius on July 5th, 2026
Created on January 16th, 2022
Open Issues & Pull Requests: 8 (+0)
Number of forks: 30
Total Stargazers: 280 (+0)
Total Subscribers: 4 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 1.1 hours
90th percentile: 9.6 hours
Tracked items: 9

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 8
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 338 days
Stale 30+ days: 8
Stale 90+ days: 8

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (2)
  • duplicate (1)
  • locked (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

UrnaDB is a NoSQL database written in Go that provides support for diverse data types and transaction capabilities. The project is designed as an embedded database and key-value store with comprehensive storage engine functionality, ACID compliance, indexing, and concurrency support.

The database implements multiple built-in data structures optimized for high throughput and low latency, with particular emphasis on efficient batch data writing. UrnaDB supports disk-based data storage with garbage collection capabilities for reclaiming disk space. The system includes disk data encryption at rest and data compression features to optimize storage efficiency. Security is addressed through IP whitelist functionality that controls access to the database, and all data operations are performed through a RESTful API protocol accessible via HTTP clients.

The core storage engine uses an append-only log approach for writing all operations to data files. The underlying virtual file system, contained in the vfs package, has been benchmarked on Intel i5-7360U hardware with 8GB LPDDR3 RAM to demonstrate write performance characteristics. The project includes a tools.sh script in the root directory to assist with various development and operational tasks.

UrnaDB exposes data interaction through RESTful APIs, making it accessible to any HTTP-capable client. The database abstracts multiple data structure types including Table, Record, Variant, and Lock types that map to common programming patterns. The Table structure functions similarly to relational database tables, automatically assigning globally unique incrementing identifiers to records and supporting semi-structured data storage comparable to struct and class fields in programming languages. Data operations follow standard HTTP conventions with PUT for creation, GET for retrieval, and DELETE for removal.

The project provides official SDKs for client integration, with Java SDK support highlighted as the recommended approach over direct HTTP interaction. The Java SDK enables lambda-style functional programming for data operations, supporting SQL-like operations including INSERT, UPDATE, DELETE, and SELECT functionality through a fluent API interface. Comprehensive documentation is available at the official website urnadb.github.io.

The most active issue labels include enhancement requests and duplicate reports. The project supports both Docker deployment for quick testing and bare-metal Linux deployment for production use with optimizable storage engine parameters.