Skip to content

Create file transport layer #23

Description

@gituser12981u2

Build a file transfer layer on top of existing QUIC transport.

This will allow us to handle:

  1. File metadata (name, size, last updated)
  2. Where to write the file on disk
  3. Resumption if file transfer is interrupted
  4. Verify full file integrity with SHA-256

It is probably best to use quinn's bidi streams under the hood. bidi should handle the chunking and file integrity checks for us after connection is made, I believe but you guys can look into that and evaluate if we should make our own.

Also please write edge case tests and an integration test.

The specific architecture and front facing API is up to you guys.

As for the chunking scheme I mentioned, we can use parallel chunking for that. This comprises of splitting one file into size segments and then sending them concurrently over multiple bidi steams. This helps with high latency or lossy connections. This also is a good precursor to more complex parallel chunking that can be done across multiple peers for security purposes. This is something can be worked on concurrently to making the minimal transport layer or not. It is not really needed right out of the gate, but it is pretty cool and is a good way to get your feet wet.

Later we can add bandwidth limiting, authorization policies, and whatever else.

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions