| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-08-25 | 2.9 kB | |
| v1.11.0 source code.tar.gz | 2026-08-25 | 16.6 MB | |
| v1.11.0 source code.zip | 2026-08-25 | 17.1 MB | |
| Totals: 3 Items | 33.7 MB | 0 | |
New Features
- Introduce
appfl.vsim, a virtual-time federated learning simulation engine from @sungminkg, which trains all clients serially on a single CPU/GPU while reconstructing the wall-clock behavior of a real federation with a virtual clock. It ships synchronous and asynchronous drivers together with configurable client availability, communication, and compute models. [Documentation]. - Add a Keycloak-based authenticator for FL client/server authentication from @Abhijit4-debug.
- Integrate DIMAT into APPFL, together with a gRPC example, from @mnpham0417.
- Add simulation data loaders and support for user-provided external datasets in
appfl.simfrom @vaseline555. - Add a federated GWAS example running on GA4GH TES endpoints, with documentation from @mfjoel01. [Documentation].
- Add an APPFL agent skill for coding agents, installable via the new
appfl-install-skillcommand. - Add a federated learning example on the Bridge2AI voice dataset.
- Add a prototype scikit-learn trainer for non-deep-learning federated models.
- Relax the
numpyversion requirement to allownumpy2.x dependencies, reported by @bourdeet in #433. - Add a
wandb_configs.exp_idoption so that all clients of a federation can log into a single Weights & Biases run, which is useful when each client runs in its own process (e.g. gRPC). If unset, the id assigned by the server is used when available, otherwise a random one is generated.
Bug Fixes
- Fix a series of security issues reported and fixed by @mdorier, including: preventing shell injection when setting up SSL certificates via
appfl-setup-ssl, requiring an explicitauth_tokeninNaiveAuthenticator, no longer shipping the test SSL certificates and private key in the released wheel, creating APPFL working directories with0o700permissions and a uid-namespaced/tmpfallback, enforcing owner-only permissions on the Globus token store directory and database, refusing AWS credentials files with insecure permissions, and using randomly named temporary files while refusing symlinks in TES client writes. - Tune the gRPC keepalive defaults so long-idle FL channels are not dropped, from @mdorier.
- Fix the scheduling logic and logging of the
QueueScheduler, from @Emon-dey. - Guard against a divide-by-zero (NaN) crash in
dirichlet_noniid_partition, from @sungminkg. - Rename
server.pemtoserver.crtfor consistent naming of generated SSL certificates. - Log client metrics to Weights & Biases against the federated learning round rather than the implicit wandb step, so that all clients share a common x-axis instead of being spread over interleaved steps.
- Lazily import
Pillowso that it is only required when actually used.