<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hakurei/internal/pkg/dir.go, branch develop</title>
<subtitle>low-level userspace tooling for Rosa OS</subtitle>
<id>http://src.rosa.moe/hakurei/atom/internal/pkg/dir.go?h=develop</id>
<link rel='self' href='http://src.rosa.moe/hakurei/atom/internal/pkg/dir.go?h=develop'/>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/'/>
<updated>2026-06-03T07:00:36Z</updated>
<entry>
<title>internal/pkg: streaming archive reader/writer</title>
<updated>2026-06-03T07:00:36Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-06-03T06:51:43Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=42cea1e7c6d1ea0658e6b4d2a1f12f98b9c0dd22'/>
<id>urn:sha1:42cea1e7c6d1ea0658e6b4d2a1f12f98b9c0dd22</id>
<content type='text'>
This is much more robust and efficient than the simple buffering implementation for larger files. Allocations happen almost exclusively in WalkDir.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>check: move from container</title>
<updated>2026-03-17T06:39:03Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-03-17T06:35:58Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=6d015a949e27f20c86409c7d78053f0b0493f165'/>
<id>urn:sha1:6d015a949e27f20c86409c7d78053f0b0493f165</id>
<content type='text'>
This package is not container specific, and widely used across the project.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pkg: standardise artifact IR</title>
<updated>2026-02-04T23:24:09Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-02-04T05:41:18Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=e0c720681bbce364910df241658dc987851e579a'/>
<id>urn:sha1:e0c720681bbce364910df241658dc987851e579a</id>
<content type='text'>
This should hopefully provide good separation between the artifact curing backend implementation and the (still work in progress) language. Making the IR parseable also guarantees uniqueness of the representation.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pkg: parallelise scrub</title>
<updated>2026-01-15T17:47:59Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-01-15T17:09:12Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=5936e6a4aab541a437fa9464468b51f91d019a2a'/>
<id>urn:sha1:5936e6a4aab541a437fa9464468b51f91d019a2a</id>
<content type='text'>
This significantly improves scrubbing performance. Since the cache directory structure is friendly to simultaneous access, this is possible without synchronisation.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pkg: reject entry types disallowed in the cache</title>
<updated>2026-01-06T18:22:44Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-01-06T18:22:44Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=5eefebcb48ac1be682ea50a23c544df93b04dc07'/>
<id>urn:sha1:5eefebcb48ac1be682ea50a23c544df93b04dc07</id>
<content type='text'>
These are not encoded in the format, they are rejected here to serve as a check for cache since checksum is computed for every directory.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pkg: optionally validate flat pathnames</title>
<updated>2026-01-03T09:59:18Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-01-03T09:59:18Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=55465c6e72a1ca0a1d7fc719ca73d18531e911fe'/>
<id>urn:sha1:55465c6e72a1ca0a1d7fc719ca73d18531e911fe</id>
<content type='text'>
This makes the decoder safe against untrusted input without hurting performance for a trusted stream. This should still not be called against untrusted input though.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pkg: encode entry in custom format</title>
<updated>2026-01-02T06:39:42Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-01-02T06:39:42Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=3078c41ce74d7c04a7db3e47cdc00a5d49496887'/>
<id>urn:sha1:3078c41ce74d7c04a7db3e47cdc00a5d49496887</id>
<content type='text'>
The fact that Gob serialisation is deterministic is an implementation detail. This change replaces Gob with a simple custom format.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pkg: implement caching for files</title>
<updated>2026-01-02T03:57:19Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2026-01-01T15:59:37Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=e9de5d3aca533ec27839661b2d311b4fcb7a13fb'/>
<id>urn:sha1:e9de5d3aca533ec27839661b2d311b4fcb7a13fb</id>
<content type='text'>
This change contains primitives for validating and caching single-file artifacts.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
</feed>
