Skip to content

Remove transient feature from ic-wasi-polyfill for persistent filesystem (#18)#19

Open
deucalioncodes wants to merge 2 commits into
mainfrom
feature/persistent-filesystem-issue-18
Open

Remove transient feature from ic-wasi-polyfill for persistent filesystem (#18)#19
deucalioncodes wants to merge 2 commits into
mainfrom
feature/persistent-filesystem-issue-18

Conversation

@deucalioncodes
Copy link
Copy Markdown
Member

Summary

Removes the transient feature from ic-wasi-polyfill so the WASI filesystem is backed by IC stable memory instead of heap memory. This makes files persist across canister upgrades.

Closes #18

Changes

  1. Cargo.toml — removed transient feature from ic-wasi-polyfill dependency
  2. filesystem example main.py — added write_file and read_file canister methods
  3. filesystem test tests.ts — added 4-step persistence test:
    • Write file before upgrade
    • Verify file readable before upgrade
    • Upgrade canister via dfx deploy --upgrade-unchanged
    • Read file after upgrade and assert content survived

Notes

  • The [rebuild] tag in the commit message triggers the WASM template rebuild via build-cpython-wasm.yml
  • Existing 6 filesystem tests are untouched
  • examples/filesystem is already in the CI cpython-integration-tests matrix

…tem (#18)

- Remove transient feature from ic-wasi-polyfill in Cargo.toml so WASI
  filesystem is backed by IC stable memory instead of heap memory
- Add write_file/read_file canister methods to filesystem example
- Add persistence CI test: write file → upgrade canister → read file →
  assert content survived [rebuild]
@deucalioncodes deucalioncodes force-pushed the main branch 2 times, most recently from 6139ae5 to b0ca1b2 Compare May 27, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove transient feature from ic-wasi-polyfill for persistent filesystem

1 participant