All Projects → petergramenides → huskydb

petergramenides / huskydb

Licence: MIT license
HuskyDB - Windows Native C++ NoSQL Database

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to huskydb

Tinydb
TinyDB is a lightweight document oriented database optimized for your happiness :)
Stars: ✭ 4,713 (+17355.56%)
Mutual labels:  nosql, documentdb
Cosmos.Identity
A Cosmos storage provider for ASP.NET Core Identity.
Stars: ✭ 26 (-3.7%)
Mutual labels:  nosql, documentdb
lmdb-js
Simple, efficient, ultra-fast, scalable data store wrapper for LMDB
Stars: ✭ 270 (+900%)
Mutual labels:  nosql
node-crudapi-ts
CRUD boilerplate for create Node Restful API's with Express Framework and Sequelize ORM written in Typescript.
Stars: ✭ 41 (+51.85%)
Mutual labels:  nosql
objectbox-generator
ObjectBox Generator based on FlatBuffers schema files (fbs) for C and C++ (more languages in the future)
Stars: ✭ 30 (+11.11%)
Mutual labels:  nosql
dynobase
Dynobase - Professional GUI Client for DynamoDB (releases / issues / roadmap repository) https://dynobase.dev
Stars: ✭ 66 (+144.44%)
Mutual labels:  nosql
Papaya
NoSQL Injection Tool to bypass login forms & extract usernames/passwords using regular expressions.
Stars: ✭ 22 (-18.52%)
Mutual labels:  nosql
grandnode2
Free, Open source, Fast, Headless, Multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, LiteDB, Vue.js.
Stars: ✭ 626 (+2218.52%)
Mutual labels:  nosql
2017-highload-kv
Курсовой проект 2017 года курса "Проектирование высоконагруженных систем"
Stars: ✭ 26 (-3.7%)
Mutual labels:  nosql
uptasticsearch
An Elasticsearch client tailored to data science workflows.
Stars: ✭ 47 (+74.07%)
Mutual labels:  nosql
database
Key-Value/Document store database library with btree and ARTree indexing methods, SSN-MVCC concurrency
Stars: ✭ 67 (+148.15%)
Mutual labels:  nosql
miki
Wiki system in PHP+NoDB in just one file. 10s setup + auto-installed. Full Markdown support. Super fast and lightweight (-0.01MB gzip). Multi-User support. Minimal and beautiful.
Stars: ✭ 25 (-7.41%)
Mutual labels:  nosql
cordova-plugin-realm
Unofficial Cordova plugin for Realm Mobile Database.
Stars: ✭ 29 (+7.41%)
Mutual labels:  nosql
RocksServer
Flexible and fast server for RocksDB
Stars: ✭ 33 (+22.22%)
Mutual labels:  nosql
authorizer
Your data, your control. Fully open source, authentication and authorization. No lock-ins. Deployment in Railway in 120 seconds || Spin a docker image as a micro-service in your infra. Built in login page and Admin panel out of the box.
Stars: ✭ 770 (+2751.85%)
Mutual labels:  nosql
soosyze
🌠 Soosyze CMS is a minimalist content management system in PHP, without database to create and manage your website easily. https://soosyze.com
Stars: ✭ 39 (+44.44%)
Mutual labels:  nosql
Noodle
Simple object storage for Android
Stars: ✭ 55 (+103.7%)
Mutual labels:  nosql
cosmosdb-repo
Repository pattern for Cosmos DB
Stars: ✭ 62 (+129.63%)
Mutual labels:  documentdb
chainDB
A noSQL database based on blockchain technology
Stars: ✭ 13 (-51.85%)
Mutual labels:  nosql
maricutodb
PHP Flat File Database Manager
Stars: ✭ 23 (-14.81%)
Mutual labels:  nosql

Introduction

HuskyDB is a lightweight document-oriented database optimized for Windows :) It's written entirely in C++ and has no external dependencies. The target is small applications and video games that do not need large databases.

HuskyDB is:

  • lightweight: HuskyDB was built to maximize efficiency and size. HuskyDB is one of the smallest and fastest NoSQL databases (~1200 lines code).

  • super-fast: Need your database indexed in a few microseconds? HuskyDB offers a linear time complexity and only takes approximately 20 microseconds per file indexed. We plan on improving speed even more!

  • document oriented: Inspired by TinyDB, HuskyDB is document oriented and can store any kind of document. In addition, we offer document-based support for priority indexing and leverage os-level file caching.

  • easy to use: HuskyDB is designed to be very simple, efficient, and extendable. We made our utility so it is easily integrated with your apps and can be used in education.

  • written in C++: Our database does not require any external server or configuration. All features are offered through our library, which relies on the Windows API.

  • windows native: Although not ideal for most, at the moment, our library only supports the Microsoft Windows operating system. We are currently working on native versions for Mac and Linux as well as a Docker container. Stay tuned for more updates!

  • easily extendable: HuskyDB is incredibly easy to extend and readable. All libraries we used are highly documented and all of our code is, equally, highly documented.

  • automatically synced: One of the most annoying features of many databases is having to add which documents you want to track. On startup, we sync all your files and configurations! Making a game? All of your assets management can be instantly handled by HuskyDB.

Example Code

#include "huskydb.h"

// Starting the database
CHuskyDB db = CHuskyDB("/path/to/db");

// Making a package
db.MakePackage("maps");

// Making a table
db.MakeTable("maps", "world-01");

// Adding a file from a C++ object to the table
db.MakeEntry("maps", "world-01", "level.json", data);

Querying

// Get specific table from package
CTable* tbl = db.QueryTables("maps", "world-01");

// Get files in table
vector<CFile*> files = tbl->GetFiles();

Priority Loading

You can automate your entity-loading with our prioritization features! To enable, just do the following on startup:

CHuskyDB("/path/to/db", true);

"priority" files will be generated in all file folders. Add the following to these files to configure priority values:

file_name.xxx=#;

Be sure to restart the database after making changes to the priority files. In consecutive releases, we will be adding the ability to have this done without restarting the database.

Database Structure

HuskyDB was designed with a very specific data management model. Many NoSQL databases are very unstructured, leading to increased query times. HuskyDB adopts a hybrid model, we utilize a custom hierarchical structure to maximize query speeds and minimize transition from conventional RDBMS SQL-based databases.

Additional Information

You can read our entire documentation here.

Want to contribute or make a suggestion? Send me an email at [email protected]!

Future Updates

Please note that HuskyDB is still in its very early stages of development. At times it may not be entirely stable and there may be bugs. Expect the following updates soon:

  • Built-in REST API
  • Better function styling
  • Automated testing
  • Security features
  • Mac & Linux native builds
  • Docker container

Special Thanks

Daniel Parente: For working with me late at night to concepualize, build, and debug HuskyDB.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].