- 
                Notifications
    You must be signed in to change notification settings 
- Fork 99
Dev Docs
WIP - ALL LINKS IN THIS WIKI STRUCTURE ARE CURRENTLY BROKEN DURING WIKI MIGRATION
THESE ARE COMMUNITY DOCS
This wiki branch contains documentation and knowledge about the Netatalk project for developers - a Free and Open Source implementation of the Apple Filing Protocol (AFP).
These developer docs are intended to supplement the main user docs (https://netatalk.io) to simplify and encourage contributions to Netatalk.
These developer docs include many Mermaid diagrams to make understanding easier and ease the learning curve (hopefully).
Netatalk is a robust, lightweight and fast AFP 3.4 server implementation that enables Unix/Linux systems to act as native file servers for Mac clients, providing seamless integration with macOS features like Time Machine, Spotlight, and Bonjour service discovery.
Dev-Docs # This Page
Dev-Docs-Index # Navigation index and table of contents
Dev-Docs-API-Libatalk # Core library functions and interfaces
Dev-Docs-Arch-Overview # High-level system architecture
Dev-Docs-Arch-DataFlow # Component interactions and data flow
Dev-Docs-Arch-Protocols # Network protocol implementation
Dev-Docs-Components-AFPD # AFP daemon implementation
Dev-Docs-Components-Appletalk # AppleTalk protocol support
Dev-Docs-Components-Auth # User Authentication Modules (UAM)
Dev-Docs-Components-CNID # CNID database system
Dev-Docs-Components-Netatalk # Master daemon and service coordination
Dev-Docs-Config-Setup # Initial setup and configuration
Dev-Docs-Config-Volumes # Volume configuration reference
Dev-Docs-Dev-Guidelines # Coding standards and development practices
Dev-Docs-Performance-Network # High-performance network tuning
Dev-Docs-Troubleshooting # Frequently encountered problems and solutions
The main Netatalk implementation resides in these key directories:
- 
libatalk/- Core AFP library implementation and utility functions
- 
etc/afpd/- AFP daemon (afpd) source code and protocol handlers
- 
etc/netatalk/- Master daemon and service management
- 
etc/cnid_dbd/- CNID database daemon for file ID management
- 
etc/uams/- User Authentication Modules (UAM) implementations
- 
include/atalk/- Public header files and API definitions
- 
meson.build- Build system configuration and dependency management
- 
test/- Test suite and benchmarking utilities
- 
contrib/- Additional scripts and integration tools
- 
AFP 3.4 Protocol Support - Full implementation with modern macOS compatibility Implementation: etc/afpd/afp_*.c,libatalk/dsi/,include/atalk/afp.h
- 
AppleTalk Legacy Support - Maintains compatibility with classic Mac systems Implementation: libatalk/atp/,libatalk/asp/,include/atalk/atp.h,include/atalk/asp.h
- 
Spotlight Integration - Search functionality via GNOME Tracker/TinySPARQL Implementation: etc/afpd/spotlight*.c,libatalk/util/server_ipc.c
- 
Time Machine Support - Native macOS backup destination Implementation: etc/afpd/volume.c,etc/afpd/enumerate.c,etc/afpd/afp_options.c
- 
Advanced Authentication - Multiple UAM modules including DHX, DHX2, PAM, Kerberos Implementation: etc/uams/,etc/afpd/auth.c,include/atalk/uam.h
- 
High Performance - Optimized for large file transfers and concurrent connections Implementation: libatalk/dsi/dsi_tcp.c,etc/afpd/fork.c,etc/afpd/file.c
- 
Cross-Platform - Supports Linux, BSD variants, macOS, and Solaris Implementation: meson.build,include/atalk/compat.h,libatalk/compat/
- 
Installation: See deployment/platforms.mdfor platform-specific instructions Build System:meson.build,meson_options.txt,contrib/shell_utils/
- 
Configuration: Review configuration/setup.mdfor initial setup Config Parsing:libatalk/iniparser/,etc/afpd/afp_config.c,etc/netatalk/netatalk.c
- 
Development: Check development/guidelines.mdfor contribution guidelines Development Tools:test/,.github/,include/atalk/standards.h
- 
Version: 4.3.0dev (active development) Version Definition: meson.build,include/atalk/version.h
- 
License: GNU General Public License v2 License Files: COPYING,COPYRIGHT, header comments in source files
- 
Language: C11 with GCC extensions Standards Compliance: meson.build(c_std setting)
- 
Build System: Meson (migrated from Autotools) Build Configuration: meson.build,meson_options.txt,subprojects/
- 
Repository: https://github.com/Netatalk/netatalk 
- 
Website: https://netatalk.io 
- 
Documentation: https://netatalk.io/manual/en/ Doc Sources: doc/manpages/,doc/developer/,README.md
- GitHub Discussions: https://github.com/Netatalk/netatalk/discussions
- Mailing Lists: netatalk-admins, netatalk-devel
- Community Forums: TinkerDifferent, 68kmla, E-Maculation
Resources
- Getting Started
- FAQ
- Troubleshooting
- Connect to AFP Server
- Webmin Module
- Benchmarks
- Interoperability with Samba
OS Specific Guides
- Installing Netatalk on Alpine Linux
- Installing Netatalk on Debian Linux
- Installing Netatalk on Fedora Linux
- Installing Netatalk on FreeBSD
- Installing Netatalk on macOS
- Installing Netatalk on NetBSD
- Installing Netatalk on OmniOS
- Installing Netatalk on OpenBSD
- Installing Netatalk on OpenIndiana
- Installing Netatalk on openSUSE
- Installing Netatalk on Solaris
- Installing Netatalk on Ubuntu
Tech Notes
- Capturing AFP network traffic
- Kerberos
- Special Files and Folders
- Spotlight
- MySQL CNID Backend
- Slow AFP read performance
- Limiting Time Machine volumes
- Netatalk and ZFS nbmand property
Retro AFP
Development