https://github.com/hypothermic/enlightenment
Extensible database management software. Usable as library, from CLI, as a remote service, and more!
https://github.com/hypothermic/enlightenment
database database-management dbms sql
Last synced: 3 months ago
JSON representation
Extensible database management software. Usable as library, from CLI, as a remote service, and more!
- Host: GitHub
- URL: https://github.com/hypothermic/enlightenment
- Owner: hypothermic
- License: other
- Created: 2020-08-09T00:14:55.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-26T17:54:59.000Z (almost 6 years ago)
- Last Synced: 2025-08-30T09:31:54.683Z (10 months ago)
- Topics: database, database-management, dbms, sql
- Language: C
- Homepage:
- Size: 286 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.txt
- License: COPYING.txt
- Authors: AUTHORS.md
Awesome Lists containing this project
README
Introduction
===============
Enlightenment is an extensible database management software (DBMS).
It stores data in Tables where the Columns represent the data fields and the Rows represent data entries.
You can use Enlightenment as:
- a library which handles data storage for your application
- a database server which is accessible from CLI
- a database server which is remotely accessible (via WebSocket, MySQL client, etc.)
Project Structure
===============
It is divided into the following modules:
| Module | Description |
| ------ | ----------- |
| enl-server-cli | Command-line tool to start a local server. |
| enl-server | Library to use when developing your application. |
| enl-api | Library to use when developing custom Engines or Drivers. |
More info about these modules can be found in [Project Structure](doc/images/enl-global-structure-dark.png) [(L)](doc/images/enl-global-structure-light.png) and [CMake Structure](doc/images/cmake-structure-dark.png) [(L)](doc/images/cmake-structure-light.png)
Engine Comparison
===============
The following table lists all available engines with their worst possible CRUD-L complexities:
| Name | Short Description | Create | Read | Update | Delete | List |
| ---- | ---------------------- | ------ | ---- | ------ | ------ | ---- |
| IMH | In-Memory (RAM) engine | O(1) | O(1) | ~ | ~ | O(n) |
License
===============
Copyright (c) 2020 Hypothermic IT
See COPYING file for license information.
Installation
===============
See build and installation instructions given in the [INSTALL](/INSTALL.md) file.
Documentation
===============
See the software manual for details on the software including a demonstration
of how to apply the software tools provided by this package.
Roadmap
===============
1. [x] Main library
2. [ ] CLI
3. [ ] Engines
- [ ] In-memory engine
- [ ] General purpose disk storage engine
- [ ] Hybrid engine
4. [ ] Drivers
- [ ] ENL minimalistic driver (via plain socket and/or WebSocket)
- [ ] MySQL/MariaDB compatible
- [ ] Mongo compatible driver (although ours is relational, it'll work probably)
5. [ ] Library usage examples
- [ ] Low-level example with manual table and engine creation
- [ ] High-level example using EServer HOC described in #6
6. [ ] Easier integration for library users through some sort of higher order control structure (EServer?)
Package Content
===============
Path | Content description
----------------------- | ----------------------------------------------------------
[BasisProject.cmake][1] | Meta-data used for the build configuration.
[CMakeLists.txt] [2] | Root CMake configuration file.
[config/] [3] | Package configuration files.
[data/] [4] | Data files required by this software.
[doc/] [5] | Documentation source files.
[example/] [6] | Example files used for demonstration.
[include/] [7] | Public header files.
[src/] [8] | Source code files.
[test/] [9] | Regression and unit tests.
[1]: /BasisProject.cmake
[2]: /CMakeLists.txt
[3]: /config
[4]: /data
[5]: /doc
[6]: /example
[7]: /include
[8]: /src
[9]: /test