filen_client 0.2.2 copy "filen_client: ^0.2.2" to clipboard
filen_client: ^0.2.2 copied to clipboard

Unofficial Dart client and CLI for Filen.io end-to-end-encrypted cloud storage — login, list, encrypted upload/download with batching and resume, plus a WebDAV bridge.

Changelog #

0.2.2 — 2FA placeholder fix #

Fixed #

  • Login no longer fails for accounts without 2FA when the caller passes an empty twoFactorCode. The Filen API skips 2FA only when the placeholder "XXXXXX" is sent; an empty string is rejected. FilenAuth.login already defaulted to the placeholder, but a caller that explicitly passed "" (rather than omitting the argument) overrode that default and hit the rejection. Empty/whitespace-only codes are now normalized to "XXXXXX". Callers that pass a real code are unaffected.

0.2.1 — Web compatibility fix #

Fixed #

  • Web builds no longer pull in dart:ffi. aes_gcm_backend.dart imported the OpenSSL and Windows-CNG FFI backends unconditionally, so any web (dart2js/dartdevc) consumer failed to compile with "Dart library 'dart:ffi' is not available on this platform". The FFI backends are now selected via a conditional import (if (dart.library.ffi)) with web-safe stubs; on web the chooser falls through to the WebCrypto-backed CryptographyBackend. No API or behavior change on native platforms.

0.2.0 — Bounded chunk + file-level concurrency #

Chunk and file transfers now run with bounded concurrency instead of one-at-a-time — the single biggest throughput win for the client.

Added #

  • Bounded chunk concurrency (Step 1): uploads (uploadFileChunked, uploadBytes) and downloads (downloadFile, downloadFileBytes) transfer multiple 1 MB chunks in parallel, bounded by a ChunkSemaphore (count) and the MemoryGate (bytes in flight). Configurable via maxConcurrentChunks (default 4).
  • File-level concurrency (Step 2): batch directory upload/download transfer multiple whole files at once, sharing one global memory budget.

Fixed #

  • Resume now tracks a completed-index set (safe with out-of-order chunk completion) and reuses the original file key on restart — previously a fresh key made already-uploaded chunks undecryptable.

Preserved invariants #

  • In-order whole-file SHA-512 hashing (parallel uploads produce the identical hash to the sequential path); tiny files stay on the simple sequential path.

CI #

  • Pinned Dart SDK, coverage dev-dependency, per-job timeouts, workflow_dispatch.

0.1.0 #

  • Initial release: chunked upload/download with resume, batch operations, recursive transfers, conflict handling, integrity verification, WebDAV server.
0
likes
130
points
55
downloads

Documentation

API reference

Publisher

verified publishercrispstro.be

Weekly Downloads

Unofficial Dart client and CLI for Filen.io end-to-end-encrypted cloud storage — login, list, encrypted upload/download with batching and resume, plus a WebDAV bridge.

Repository (GitHub)
View/report issues

License

MPL-2.0 (license)

Dependencies

args, convert, crypto, cryptography, ffi, file, glob, hex, http, path, pointycastle, shelf, shelf_dav, shelf_router

More

Packages that depend on filen_client