Initial commit: Crafter.DB
Header-only C++26 module library for typed, file-backed tables with schema reflection, migrations, queries, and crash-safe commits. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
commit
bfd0cc261b
34 changed files with 7506 additions and 0 deletions
53
project.cpp
Normal file
53
project.cpp
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
// SPDX-License-Identifier: LGPL-3.0-only
|
||||
// SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
||||
|
||||
import std;
|
||||
import Crafter.Build;
|
||||
namespace fs = std::filesystem;
|
||||
using namespace Crafter;
|
||||
|
||||
extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> args) {
|
||||
Configuration cfg;
|
||||
cfg.path = "./";
|
||||
cfg.name = "Crafter.DB";
|
||||
cfg.outputName = "Crafter.DB";
|
||||
cfg.type = ConfigurationType::LibraryStatic;
|
||||
ApplyStandardArgs(cfg, args);
|
||||
std::array<fs::path, 13> ifaces = {
|
||||
"interfaces/Crafter.DB",
|
||||
"interfaces/Crafter.DB-Error",
|
||||
"interfaces/Crafter.DB-Reflect",
|
||||
"interfaces/Crafter.DB-Format",
|
||||
"interfaces/Crafter.DB-Formatter",
|
||||
"interfaces/Crafter.DB-Schema",
|
||||
"interfaces/Crafter.DB-File",
|
||||
"interfaces/Crafter.DB-Storage",
|
||||
"interfaces/Crafter.DB-Codec",
|
||||
"interfaces/Crafter.DB-Row",
|
||||
"interfaces/Crafter.DB-Query",
|
||||
"interfaces/Crafter.DB-Migration",
|
||||
"interfaces/Crafter.DB-Table",
|
||||
};
|
||||
std::array<fs::path, 2> impls = { "implementations/Crafter.DB-File", "implementations/Crafter.DB-Storage" };
|
||||
cfg.GetInterfacesAndImplementations(ifaces, impls);
|
||||
|
||||
// Tests link the local static library. Linux only: the engine uses
|
||||
// flock, fallocate and fixed-address mmap.
|
||||
if (cfg.target.ends_with("-linux-gnu")) {
|
||||
cfg.AddTest("ShouldRoundTrip").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldKeepLayoutGolden").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldKeepViewsStableAcrossGrowth").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldQuery").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldCompareStringRefs").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldEraseAndCompact").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldMigrate").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldRejectSchemaChange").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldRecoverCommits").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldFormatCustomTypes").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldLockAcrossProcesses").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldVerify").Dependencies({ &cfg });
|
||||
cfg.AddTest("ShouldReadWhileAppending").Dependencies({ &cfg });
|
||||
cfg.AddTest("Benchmark").Dependencies({ &cfg });
|
||||
}
|
||||
return cfg;
|
||||
}
|
||||
Loading…
Reference in a new issue