aboutsummaryrefslogtreecommitdiffstats
path: root/README.org
blob: f8da3207faa6106036304751beb86f9c325dad9f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#+TITLE: Relational NT

#+ATTR_ORG: :width 320
[[file:images/logo.png]]

* About

This is a Relational NT-inspired database kernel. The goal of the project is to offer an approach similar to how the NT kernel offers for an OS, but for administrating database objects and state.

Relational NT explores database internals through an object-manager style architecture. Instead of treating relations, tuples, transactions, namespaces, permissions, and handles as unrelated mechanisms, the runtime models them as managed objects with explicit lifecycle, uniform access paths and explicit security enforcement.

* Design Direction

- Object management: database objects are registered, located, and referenced through a central object manager.
- Permissions: access checks are separated from object lookup so security policy can evolve independently.
- Identity and lifecycle: opening, closing, monitoring, and contention decisions are represented as runtime responsibilities.
- Handles: authorized access to objects is modeled explicitly, making ownership and cleanup visible.

* Current Status

The project is early-stage and focused on shaping the runtime structure. Many components are intentionally skeletal while the core abstractions settle.

* Building

The repository includes a Visual Studio makefile project and a root =Makefile=. On Windows, build with the Visual Studio/NMake environment available:

#+begin_src shell
nmake /f Makefile windows
#+end_src

For Unix-like environments with a C++17 compiler and Make installed:

#+begin_src shell
make unix
#+end_src