diff options
Diffstat (limited to 'docs/mainpage.dox')
| -rw-r--r-- | docs/mainpage.dox | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/docs/mainpage.dox b/docs/mainpage.dox deleted file mode 100644 index 8cef183..0000000 --- a/docs/mainpage.dox +++ /dev/null @@ -1,90 +0,0 @@ -/** - * @mainpage RNT - * - * @image html logo.png - * <p><a href="https://www.gnu.org/licenses/agpl-3.0.html"><img src="https://www.gnu.org/graphics/agplv3-with-text-162x68.png" alt="GNU AGPLv3" /></a></p> - * - * RNT is an experimental database kernel inspired by the - * object-management model of the Windows NT kernel. The project applies - * explicit object management to database state: relations, tuples, - * transactions, namespaces, permissions, cursors, and handles are - * runtime-managed objects rather than isolated subsystems. - * - * @section motivation Motivation - * - * The NT kernel is a good model for a dedicated database kernel for three - * reasons. - * - * **The object manager.** NT's OB gives every kernel resource a named path, - * a security descriptor, and a uniform open/close lifecycle enforced through - * handles. A database kernel has the same requirements. Rather than building - * those mechanisms independently for each database concept, this project - * borrows the NT object manager's shape directly. - * - * **Physical backends as drivers.** NT device drivers expose a narrow - * dispatch table. The kernel routes I/O through it without knowing whether - * the device is a local disk or a network adapter. Storage backends here - * follow the same pattern. A remote backend like etcd is just another - * driver, but brings its own concerns: network latency, connection - * management, and the possibility of partial failure. The driver boundary - * keeps those concerns inside the backend module. - * - * **Clients as environment subsystems.** NT supports Win32, POSIX, and OS/2 - * as environment subsystems layered above a common native API. A database - * client works the same way: a PostgreSQL wire adapter, a MySQL wire - * adapter, or an HTTP/JSON interface each translates its protocol into - * kernel-level operations. The kernel never sees SQL syntax or protocol - * framing. - * - * @section architecture Architecture - * - * - ObjectManager registers, locates, and references database objects by - * logical path. - * - PermissionsManager keeps capability checks separate from object lookup. - * - IdentityManager decides whether an object supports a requested lifecycle - * operation. - * - LifecycleManager models monitoring, pinning, cleanup, and contention. - * - HandlerManager orchestrates the full open/close workflow and owns handle - * allocation. - * - CursorManager provides a pull-based iterator over storage, abstracting - * pagination, snapshot pinning, and scan boundaries. - * - VM separates terminating first-order relational retrieval (Tarski) from - * higher-order logic execution (Karuta). - * - NamespaceReferenceManager handles logical path mapping and namespace - * isolation, including private branch shadowing and atomic multi-reference - * updates. - * - * @section building Building - * - * Requires the Nix development shell on GNU/Linux. The flake provides GCC, - * CMake, Ninja, SQLite, PicoSHA2 headers, Catch2, Doxygen, and Graphviz. - * - * @code{.sh} - * nix develop - * cmake --preset gnu-debug - * cmake --build out/build/gnu-debug - * @endcode - * - * A release build uses @c --preset @c gnu-release. - * - * @section docs Generating Documentation - * - * @code{.sh} - * doxygen Doxyfile - * @endcode - * - * Generated HTML is written to @c docs/generated/html. - * - * @section license License - * - * RNT is free software licensed under the GNU Affero General Public License - * v3.0. See the repository @c LICENSE file for the full terms. - * - * Copyright (C) 2026 Marcos Magueta, RNT contributors, and Don't Rely on - * Nulls. Maintainer: Marcos Magueta. - */ - -/** - * @namespace nt - * @brief Contains the Relational NT runtime managers and API facade. - */ |
