Netatalk Client v1.0.0
This is the first stable release version of Netatalk Client, considered essentially feature complete and AFP standards compliant, with a stable external API. It is recommended for use as a stand-alone TUI and FUSE client, as well as a full-featured client library for building apps with AFP client functionality.
AFP Client Library Improvements
- Add Zeroconf AFP service discovery with Bonjour/DNS-SD and Avahi backends. The new afpc discover command produces human-readable, verbose, or JSON output, and afpcmd –browse provides an interactive service picker. FUSE mounts can resolve an advertised service by name
- Strengthen connection recovery by verifying the AFP server signature before a session is reused. Reconnecting clients now reject a server identity mismatch while continuing to support a verified server at a changed address
- Support full-length UTF-8 AFP path components and retain the negotiated filename encoding independently for each volume on a server. This prevents one volume’s encoding capabilities from affecting another’s operations
- Improve AFP 2.x compatibility, including enumeration reply sizing, ResourceFork lifecycle handling, pre-2000 timestamps, and transfers involving servers that do not support POSIX operations
- BREAKING: Add a supported, namespaced public API under netatalk-client/ for both the daemon-backed libafpsl API and the opaque stateful libafpclient transport API. Any applications that used the v0.9.5 and earlier API must be updated.
Stateless Client and afpcmd Improvements
- Add AFP Desktop database support: afpcmd can now read and set Finder comments, list and retrieve icons, and query application mappings. The stateless library exposes the same operations to applications
- Add -f / –afpversion to afpcmd and FUSE mounting commands to set the maximum AFP protocol version used for a connection
- Validate the stateless client-daemon protocol and version before accepting requests, and harden request and response framing for long paths and Desktop database data
Build and Portability Improvements
- Add build and CI support for illumos, OmniOS, and Solaris 11
- Allow Meson builds that install only the client libraries, without requiring either FUSE or a command-line client
- Improve portability of afpcmd builds using libedit/editline and promote compiler warnings to errors in supported builds
Reliability Improvements
- Avoid synchronous DSI connection teardown when a server closes a session, making shutdown and reconnect paths more robust
- Harden UAM, daemon startup, and FUSE IPC error handling, including complete read/write handling and stricter public API boundaries
What’s Changed
- meson: allow builds with only libraries, no client executables by @rdmark in #289
- libafpclient: respect requested AFP version ceiling by @rdmark in #290
- add illumos and Solaris build support by @rdmark in #293
- libafpclient: define namespaced public API boundary by @rdmark in #294
- introduce Zeroconf AFP service discovery by @rdmark in #300
- control: replace afp_client with afpc namespaces by @rdmark in #311
- verify AFP server signatures before session reuse by @rdmark in #312
- support full-length UTF-8 path components by @rdmark in #313
- libafpclient: make pathname encoding volume-specific by @rdmark in #320
- afpsl: add AFP desktop database commands by @rdmark in #321
- libafpclient: align DHX usernames in AFP packets by @rdmark in #323
- introduce option to force AFP protocol version in afpcmd by @rdmark in #324
- libafpclient: a number of adjustments for AFP 2.x compatiblity by @rdmark in #325
- initialize log level for afpc sl and map command names by @rdmark in #330
- uams: fix DHX MPI ownership by @rdmark in #331
- enforce -Werror compiler flag and fix compiler warnings by @rdmark in #334
- optimizations for did cache, DSI quantum, FUSE write size by @rdmark in #333
- better libedit/editline readline header compatibility by @rdmark in #344
- libafpclient: avoid DSI synchronous teardown on server close by @rdmark in #343
- update TODO with major future projects by @rdmark in #346
- update changelog for v1.0.0 by @rdmark in #355
Full Changelog: https://github.com/Netatalk/netatalk-client/compare/0.9.5…1.0.0
Downloads
- netatalk-client-1.0.0.tar.xz (0.2 MB)
- netatalk-client-1.0.0.tar.xz.asc (0.0 MB)
- netatalk-client-1.0.0.tar.xz.sha256sum (0.0 MB)
Footnotes
Release published on 2026-09-15
Generated from GitHub Release Notes