- WebDAV uploader: concurrency, request and bandwidth limits, retry with backoff, offline catch-up, encrypted manifests, durability tracking - Automatic unique remote directory claimed with a conditional PUT - AES-256-GCM client-side encryption with keyed blob names - /stats, /progress, /progress/stream and a /dashboard page - Own ctypes inotify binding with a compact watch tree (263 MB -> 76 MB RSS) - Directory-path ignore patterns and a forget command - Indexed range queries instead of LIKE for path prefixes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 lines
605 B
TOML
32 lines
605 B
TOML
[build-system]
|
|
requires = ["setuptools>=69"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "versiond"
|
|
version = "0.1.0"
|
|
description = "Local file versioning and backup service"
|
|
readme = "readme.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.110",
|
|
"uvicorn>=0.29",
|
|
"httpx>=0.27",
|
|
"cryptography>=42",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=8"]
|
|
|
|
[project.scripts]
|
|
versiond = "versiond.cli:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.setuptools.package-data]
|
|
versiond = ["dashboard.html"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|