This document clarifies the relationship between transport extensions and the QWKSync.NET library.
QWKSync.NET has two distinct layers:
- Transport Layer — Moves files between local and remote endpoints
- Orchestration Layer — Discovers, orders, and coordinates transfers
Transport extensions (like QWKSync.HTTP) implement the transport layer only. They do not implement orchestration, retries, concurrency guards, or packet semantics.
A transport extension provides:
- An
ITransportimplementation (e.g.,HttpTransport) - An
ITransportFactoryimplementation (e.g.,HttpTransportFactory) - Transport-specific settings parsing
Transport extensions:
- Do not register themselves with
QwkSyncClient - Do not call
QwkSyncClientmethods - Do not implement sync orchestration
- Do not parse or interpret QWK/REP packet contents
Transport extensions implement public interfaces (ITransport, ITransportFactory) and can be used without modifying QWKSync.NET:
- Add QWKSync.NET to your project:
dotnet add package QwkSync - Add QWKSync.HTTP to your project:
dotnet add package QwkSync.HTTP
// Create the transport
FtpTransportFactory factory = new FtpTransportFactory();
await using ITransport transport = factory.Create(profile, policy);
// Use it directly
IReadOnlyList<RemoteItem> files = await transport.ListAsync(null, "*.qwk", ct);
await transport.DownloadAsync(files[0], localPath, progress, ct);
await transport.UploadAsync(localFile, remotePath, fileName, progress, ct);For greater detail, review the QWKSync.HTTP.Demo ..it works!
QwkSyncClient is a convenience orchestrator that comes with built-in transports (e.g., local-folder). It handles discovery, ordering, retries, and concurrency guards.
However, QwkSyncClient does not expose transport registration. Its internal registry is populated with built-in transports only. This is a design choice, not a limitation — transport extensions work independently of QwkSyncClient.
If you need orchestration with a custom transport, implement it in your application using the transport directly, as shown above.
| Responsibility | Transport Extension | QWKSync.NET Library |
|---|---|---|
| File transfer | ✓ | |
| Settings parsing | ✓ | |
| Transport registration | ✓ | |
| Sync orchestration | ✓ | |
| Retry logic | ✓ | |
| Concurrency guards | ✓ |