Easysnapshot
Goals
- Many Archives: Store in many archives at once.
- Emergent Complexity: Small implementation surface with reasonable usage requirements.
Client
Clients gather and send information to archive endpoints.
Commands
- All commands accept
--help/-h. - All commands accept
--verbose/-v. ev archive register <archive:URL> [user:ID]: Claim a specific User ID on the given archive. User ID is random if omitted.ev archive unregister <archive:URL> <user:ID>: Requests the archive to forget this User ID.ev archive login <archive:URL> <user:ID> [workspace:PATH]: Sets this combination of Archive URL + User ID as active for this workspace.ev archive logout <archive:URL> <user:ID> [workspace:PATH]: Sets this combination of Archive URL + User ID as unactive for this workspace.ev save <--note <note:TEXT> | -n <note:TEXT> [workspace:PATH]: Save the workspace's current state as a new Snapshot, with the note when provided.ev list [workspace:PATH]: List the Workspace's Snapshots. Also showing notes where set.ev clone <source:PATH> <target:PATH> [--snapshot <snapshot:ID> | -s <snapshot:ID>]: Clone the source Workspace to the target path, which may not exist yet. Clone the current workspace state if omitted.ev forget {--snapshot <snapshot:ID> | -v <snapshot:ID> | --all | -a} [workspace:PATH]: Forget the specified snapshot(s) for the given Workspace.
Archive
Clients recieve and save information from clients through their URL.
Types
Five distinct types, forming one chain from workspace to content:
| Type | Contents |
|---|---|
user |
Metadata about the user account |
workspace |
An array of snapshot hashes |
snapshot |
A manifest hash and an optional note |
manifest |
An array of reference hashes |
reference |
A relative file path and a content hash |
content |
Raw byte data |
Endpoints
HEAD /type/<type:ID>: Check whether the Type ID already exists.GET /type/<type:ID>: Returns an object with the Type's data.PUT /type/<type:ID>: Sets the object with the Type's data.DELETE /type/<type:ID>: Forget the given Type ID.
Invariants
- All in workspace configuration, will be done under
./evin the workspace root. - Archive URL + User ID login configurations are unique per workspace.
Metadata
Release files for evserver 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| evserver-0.4.0.tar.gz | 4.0 kB | Without provenance | Details for evserver-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| evserver-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for evserver-0.4.0-py3-none-any.whl |
Total release size: 9.2 kB
Release files / evserver-0.4.0.tar.gz
| Download URL | evserver-0.4.0.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
db90f7fa911d46507657061952dcfead8316f4fcf59f1db7c2b38f622a79a3c8
|
|
BLAKE2b-256 checksum How to use checksums |
e44c2722226a169e625dc813bb123ab13654751f2112500a291706aecd5893c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / evserver-0.4.0-py3-none-any.whl
| Download URL | evserver-0.4.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08448b40ea90355cf361e0bfac8f23c04cef667447ef28857c576d5a339897cd
|
|
BLAKE2b-256 checksum How to use checksums |
079f80bb9d66244ef90238837663f7f4a43745b84fef94226b506eaa9da19440
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for evserver 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.