Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: nightmarewalker/D-MemFS

v0.4.1

22 Mar 20:07
@nightmarewalker nightmarewalker

Choose a tag to compare

This release focuses on documentation quality — no functional changes.

Documentation

  • Added docstrings to all public API classes and methods (MemoryFileSystem, MemoryFileHandle, AsyncMemoryFileSystem, AsyncMemoryFileHandle, MFSStats, MFSStatResult, MFSQuotaExceededError, MFSNodeLimitExceededError, MFSTextHandle, ArchiveAdapter and related)
  • Regenerated API reference (docs/api_md/index.md) — previously missing methods and classes are now fully documented
  • Added pydoc-markdown.yml for reproducible API reference generation with public-API-only filtering
  • Added design documents: spec_v15.md, DetailedDesignSpec_v3.md, DetailedDesignSpec_test_v3.md
  • README: added spec_v15 link, updated DetailedDesignSpec / DetailedDesignSpec_test links to v3
Assets 2
Loading

v0.4.0

21 Mar 10:41
@nightmarewalker nightmarewalker

Choose a tag to compare

v0.4.0 - 2026年03月21日

This release adds pluggable archive extraction to D-MemFS. ZIP and TAR archives can now be extracted directly into the virtual filesystem using expand_archive() (atomic, all-or-nothing) or expand_archive_streaming() (low-memory, incremental). Custom archive formats are supported via the ArchiveAdapter base class.

Highlights

  • Added expand_archive() for atomic extraction via import_tree() with automatic rollback on failure
  • Added expand_archive_streaming() for low-memory streaming extraction with on_conflict="skip" for incremental updates
  • Added ArchiveAdapter base class with built-in ZipAdapter and TarAdapter (standard library only)
  • Added _sanitize_archive_path() for Zip Slip prevention — absolute paths, ../ traversal, and backslash paths are silently stripped
  • Added on_conflict parameter ("raise" / "overwrite" / "skip") for archive-internal duplicates and MFS existing file collisions
  • Re-exported ArchiveAdapter, expand_archive, expand_archive_streaming from dmemfs
  • Updated README, README_ja, TESTING, TESTING_ja, CHANGELOG, and examples documentation

Verification

  • Standard test run: 436 passed
  • Free-threaded test run: 436 passed
  • Free-threaded stress tests: 6 passed

Notes

  • expand_archive() buffers the entire archive in memory (×ばつ peak) but guarantees all-or-nothing atomicity
  • expand_archive_streaming() uses O(single-file) memory but does not roll back on failure
  • on_conflict="skip" is available only in expand_archive_streaming() for incremental extraction
  • Existing directory collisions always raise IsADirectoryError regardless of on_conflict setting
Loading

v0.3.0

08 Mar 20:25
@nightmarewalker nightmarewalker

Choose a tag to compare

v0.3.0

This release adds MemoryGuard, an optional physical-memory protection layer for D-MemFS. In addition to the existing logical quota, D-MemFS can now warn or fail early when configured quota or incoming writes exceed available system memory. The default remains memory_guard="none", so existing behavior stays backward compatible.

Highlights

  • Added memory_guard, memory_guard_action, and memory_guard_interval to MemoryFileSystem and AsyncMemoryFileSystem
  • Added internal physical-memory detection and MemoryGuard strategy modules
  • Integrated MemoryGuard into write, truncate, preallocate, import_tree, and copy_tree paths
  • Improved MemoryError messages with clearer context and recovery hints
  • Made chunk-overhead accounting deterministic across standard and free-threaded Python builds
  • Added free-threaded CI coverage and updated test/documentation assets

Verification

  • Standard test run: 369 passed
  • Free-threaded test run: 369 passed
  • Free-threaded stress tests: 6 passed

Notes

  • memory_guard="none" keeps legacy behavior
  • memory_guard="init" checks at filesystem initialization
  • memory_guard="per_write" checks before write-path allocations
Loading

v0.2.1

01 Mar 00:23
@nightmarewalker nightmarewalker

Choose a tag to compare

Fix relative links in READMEs for PyPI compatibility

Loading

v0.2.0

28 Feb 23:58
@nightmarewalker nightmarewalker

Choose a tag to compare

Initial release of D-MemFS — in-process virtual filesystem with hard quota for Python.

Loading

AltStyle によって変換されたページ (->オリジナル) /