MFUP/2 resumable multi-file upload engine: protocol codec, session state machine, SQLite staging, Redis expiry index, publish/mapping. Framework-free core.
Project description
mfup-core
The MFUP/2 resumable multi-file upload engine — framework-free.
MFUP/2 moves whole directory trees (think node_modules-scale: tens of
thousands of small files) from a browser to a server over one WebSocket
control channel (JSON) plus HTTP data legs (binary frames), with:
- resume across page reloads, network drops and server restarts (per-session SQLite journal in a staging directory, epoch/leg fencing);
- interactive transfers — the server can ASK the user mid-flight (overwrite? cancel?) without stopping the stream;
- integrity — CRC-32C per chunk (C-accelerated, hard dependency), commit invariants that catch lost metadata;
- atomic publish — staged files move into the target directory with
rename(), optionally re-laid-out per file by a consumer hook; - retention — Redis expiry index plus a filesystem reconciliation safety net; failed/cancelled sessions leave no garbage.
This package contains the protocol codec, the session state machine,
storage/publish, the Redis index, and the consumer hook contracts
(AuthRequest/AuthResult, FileMapRequest, CommitEvent). It does not
speak HTTP: pair it with mfup-fastapi
(or write your own transport shell against these primitives).
The browser side lives on npm: @mfup/client (TypeScript SDK) and
@mfup/react (hooks).
Docs and source: https://github.com/n0isy/mfup — see docs/EXTENDING.md
for the integration contract and docs/FULL.md for the protocol.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mfup_core-0.2.0.tar.gz.
File metadata
- Download URL: mfup_core-0.2.0.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39158e23ffe6c3fd1f020b82062d4e30db18182cb3c1021ecd2119ca66ab1a8a
|
|
| MD5 |
aa1e368dbc8e8fc852115c15cbf70a92
|
|
| BLAKE2b-256 |
7ca4b4b3d4ffa6373243055862925911ac9474ff648c2da7056bea96cc0a795f
|
Provenance
The following attestation bundles were made for mfup_core-0.2.0.tar.gz:
Publisher:
release.yml on n0isy/mfup
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mfup_core-0.2.0.tar.gz -
Subject digest:
39158e23ffe6c3fd1f020b82062d4e30db18182cb3c1021ecd2119ca66ab1a8a - Sigstore transparency entry: 2340952604
- Sigstore integration time:
-
Permalink:
n0isy/mfup@6e337f11adaa9c0c6428eee0808107cafe747dd0 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/n0isy
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6e337f11adaa9c0c6428eee0808107cafe747dd0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mfup_core-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mfup_core-0.2.0-py3-none-any.whl
- Upload date:
- Size: 29.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bc85e04a7be34ffd420ec4c8d9209a97d7fc70667dcd33304e3159a898f0a94
|
|
| MD5 |
d3df1d7b9f42d61c7228149edd2cd57b
|
|
| BLAKE2b-256 |
3713d9bffb28f76b881330cfb52998c61977f44456d5841a33f0828cb8517a11
|
Provenance
The following attestation bundles were made for mfup_core-0.2.0-py3-none-any.whl:
Publisher:
release.yml on n0isy/mfup
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mfup_core-0.2.0-py3-none-any.whl -
Subject digest:
6bc85e04a7be34ffd420ec4c8d9209a97d7fc70667dcd33304e3159a898f0a94 - Sigstore transparency entry: 2340949004
- Sigstore integration time:
-
Permalink:
n0isy/mfup@15d733a6da87800193f4f03d69192e3d39a538dc -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/n0isy
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@15d733a6da87800193f4f03d69192e3d39a538dc -
Trigger Event:
push
-
Statement type: