alpha
Login
or
Join now
xeiaso.net
/
objgit
Star
10
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Git backed by object storage because you can't stop me
git
object-storage
kefka
Star
10
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
objgit
/
docs
/
at
76bb55d05916b569eb2baccb6f076bc9a0321747
3 folders
Xe Iaso
feat(s3fs): implement lazy, range-based reads with read-ahead window
7w ago
76bb55d0
plans
feat(s3fs): implement lazy, range-based reads with read-ahead window Replace eager GetObject+ReadAll buffering with lazy on-demand fetching. Files now stream their bodies only when read, and ReadAt uses S3 Range requests backed by a 1 MiB read-ahead window. This prevents whole-object buffering in RAM (critical for large pack files since feat: keep pushed packs whole) and reduces redundant HeadObject calls by deriving metadata from the GetObject response. Sequential Read opens a body at Open or on first read (depending on cache hit); body streams on demand and reopens after Seek. ReadAt issues Range requests; nearby offsets are served from the window without new S3 calls. The redundant HeadObject is dropped from the main path; only Stat on a never-read handle falls back to it (effectively unreachable in normal flow). The public billy.File API is unchanged; this is a performance and memory optimization. All three transport protocols (HTTP, git://, SSH) exercise real pack/idx reads through go-git's FSObject and Scanner; the full test suite passes. See docs/plans/s3fs-lazy-read.md for the design. Assisted-by: Claude Haiku 4.5 via claude.ai Signed-off-by: Xe Iaso <me@xeiaso.net>
1 month ago
reference
feat(s3fs): add optional Unix-metadata storage as S3 user metadata Store POSIX file attributes (uid, gid, mode, mtime) as x-amz-meta-* headers on S3 objects so POSIX filesystems layered on Tigris can round-trip ownership and permissions instead of always reporting mode 0666 with no owner. The feature is opt-in and off by default: NewS3FS takes functional options, and without WithUnixMetadata the filesystem behaves exactly as before. Callers opt in by passing WithUnixMetadata(uid, gid, umask) and resolve any name strings to numeric IDs themselves. New unixmeta package implements Encode/Decode and PosixMode/GoFileMode conversion; the wire format is documented in docs/reference. Assisted-by: Claude Opus 4.7 via Claude Code Signed-off-by: Xe Iaso <me@xeiaso.net>
1 month ago
usage
test(http): tidy parity-test literals and stale comment
1 month ago