A client for the Koofr cloud storage API: mounts, files, search, public links, receivers and the trash
koofrcloud-storagefilessharingupload
[decks]
"@deckyard/koofr" = "^0.2.0"| Version | Status | Kind | Pin | Requires | Engines | Capabilities |
|---|---|---|---|---|---|---|
| 0.2.0 | live | git | cdb71812cd13 | - | jennifer >=0.26.0 | net |
| 0.1.0 | live | git | 04e4b2ebdcce | - | jennifer >=0.26.0 | net |
LGPL-3.0-only
0.2.0Times a client asked this registry where to find this deck. Not downloads: the registry only stores metadata, and the code is fetched from its repository directly, so we never see an install and cannot count one. Repeated builds inflate these numbers; installs from an existing lockfile do not appear at all. Counted in UTC.
A client for the Koofr cloud storage API, for Jennifer programs: the account and its mounts, files and folders (list, recursive list, download, upload with overwrite conditions, rename, copy and move across mounts), search, public links, receivers (upload links) and the trash. call reaches any other endpoint. Other providers running the same API work with their own base URL.
Plain file sync can use the interpreter's webdav module against https://app.koofr.net/dav/Koofr with the same app password; this deck covers what WebDAV cannot.
jvc add @deckyard/koofrThis vendors the deck to vendor/deckyard/koofr/. Without jvc, unpack the src/ subtree of a release archive (deckyard-koofr-<version>.tar.gz) there.
use fs;
use io;
use os;
import "@deckyard/koofr/" as koofr;
def c as koofr.Client init koofr.client(koofr.DEFAULT_URL);
$c = koofr.withAppPassword($c, "[email protected]", os.getEnv("KOOFR_PASSWORD"));
def m as koofr.Mount init koofr.primaryMount($c);
koofr.mkdirAll($c, $m.id, "/backups/2026");
def opts as koofr.PutOptions;
$opts.overwrite = true;
koofr.put($c, $m.id, "/backups/2026/db.sql", fs.readBytes("db.sql"), $opts);
io.printf("%s\n", koofr.createLink($c, $m.id, "/backups/2026/db.sql").shortUrl);Jennifer 0.26.0 or newer, the default jennifer binary (not jennifer-tiny), and the net capability. Uploads and downloads are held in memory: the interpreter's http module does not stream yet.
tools/check-all.sh # the full gate, as CI runs it
jennifer test src/koofr_test.j # the test overlay
tools/check-docs.sh # docs against the code
tools/pack.sh dist # build the release archiveLGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <[email protected]>.
tools/check-headers.sh checks every source file's SPDX header against deck.toml.