ORIGINAL ADVANCED PROJECT / FREE PREVIEW
Publish the complete artifact.
A C++/Linux engineering project about the gap between writing bytes, making a replacement visible and confirming durability. Start with the free destination-name exercise.
Included in the preview
- A concrete seven-milestone project brief and review rubric.
- A standalone C++20 starter for a bounded artifact-name policy.
- 23 behavioral checks, including traversal, embedded NUL and size boundaries.
- A complete reference for this free milestone, with a Python test runner.
The full project is still in development
The descriptor, write-loop, atomic-publication and failure-recovery stages are a roadmap. They are not included as completed implementations in this preview.
No paid checkout is open. All existing CodeRigor courses and projects remain free.
Start with an interface you can explain
The preview validates a deliberately narrow name policy: 1–64 ASCII bytes, an alphanumeric first byte, then letters, digits, period, underscore or hyphen.
#pragma once
#include <string_view>
namespace crucible::publisher {
bool valid_leaf_name(std::string_view name) noexcept;
}The project roadmap
- Bounded artifact names — included in the free preview
- RAII directory and file descriptors
- Exclusive temporary files and bounded writes
- Atomic replacement and directory syncing
- Failure injection and abandoned-file recovery
- Explicit concurrent reader and writer contracts
- Engineering review and limits of the evidence
Bring these foundations
- C++ references, values and RAII
- Containers, views and lifetime contracts
- Unix/Linux descriptors, files and filesystem calls
- Reviewable Git history and recovery
The first milestone performs no filesystem operations. Later stages must distinguish a failure before rename from uncertain durability after rename.