-
Notifications
You must be signed in to change notification settings - Fork 101
Dev Docs Index
Welcome to the Netatalk developer documentation. This index provides comprehensive navigation across all developer resources to help you understand, build, and contribute to Netatalk.
| Section | Description | Key Topics |
|---|---|---|
| Getting Started | Essential reading for new developers | Overview, build process, contribution guidelines |
| API Reference | Library interfaces and programming APIs | libatalk API, function references |
| Architecture | System design and structure | Protocol stack, data flow, component interactions |
| Components | Individual system components | AFP daemon, AppleTalk, authentication, CNID |
| Configuration | Setup and volume management | Server setup, volume configuration |
| Performance | Optimization and tuning | High-speed networking, DSI tunables |
| Development | Contributing to Netatalk | Coding guidelines, testing, patches |
| Troubleshooting | Problem diagnosis and resolution | Common issues, debugging techniques |
Primary Documentation Entry Point
- Project overview and architecture summary
- Build instructions and dependencies
- Development environment setup
- Contributing guidelines
Related Source Code:
- Build system:
meson.build - Main headers:
include/atalk/
Programming Interface Reference
- Core library functions and structures
- API usage examples and best practices
- Function signatures and parameters
- Error handling and return codes
Related Source Code:
- Library implementation:
libatalk/ - Public headers:
include/atalk/ - API definitions:
include/atalk/globals.h
High-Level System Design
- Overall system architecture and component relationships
- Protocol implementation strategy
- Data flow patterns and processing pipelines
- Security model and access control
Related Source Code:
- Main daemon:
etc/afpd/ - Protocol handlers:
libatalk/dsi/
Network Protocol Layer Analysis
- AFP (Apple Filing Protocol) implementation
- DSI (Data Stream Interface) layer
- TCP/IP integration and networking
- Protocol state management
Related Source Code:
- DSI implementation:
libatalk/dsi/ - AFP protocol:
etc/afpd/ - Network utilities:
libatalk/util/
Request Processing and Data Movement
- Request/response cycle analysis
- Data transformation pipelines
- Caching and buffering strategies
- I/O optimization techniques
Related Source Code:
- Request processing:
etc/afpd/file.c,etc/afpd/directory.c - Data handling:
libatalk/adouble/ - VFS layer:
libatalk/vfs/
Core Server Implementation
- AFP daemon architecture and functionality
- Client connection management
- File and directory operations
- Resource fork handling
Related Source Code:
- AFP daemon:
etc/afpd/ - Main entry:
etc/afpd/main.c - Session management:
etc/afpd/afp_dsi.c
Legacy AppleTalk Protocol Support
- AppleTalk protocol stack
- Network routing and discovery
- Legacy client compatibility
- Migration considerations
Related Source Code:
- AppleTalk library:
libatalk/atp/,libatalk/asp/ - Network utilities:
bin/(AppleTalk tools)
User Authentication and Authorization
- Authentication methods (PAM, DHX, etc.)
- User account management
- Password handling and security
- Authorization and permissions
Related Source Code:
- UAMS (User Authentication Modules):
etc/uams/ - Authentication core:
libatalk/util/ - Security utilities:
include/atalk/uam.h,include/atalk/acl.h
Catalog Node ID Management
- CNID database architecture
- File/directory indexing system
- Database backends (dbd, mysql, sqlite)
- Performance optimization
Related Source Code:
- CNID implementation:
libatalk/cnid/ - Database daemon:
etc/cnid_dbd/ - CNID utilities:
bin/ad/
System Service and Integration
- Service initialization and management
- Configuration file processing
- System integration points
- Process coordination
Related Source Code:
- Main service:
etc/netatalk/ - Configuration:
etc/afpd/afp_config.c,libatalk/util/netatalk_conf.c - System integration:
distrib/
Installation and Initial Configuration
- Server installation procedures
- Configuration file structure and options
- Network setup and discovery
- Security configuration
Related Source Code:
- Configuration parsing:
etc/afpd/afp_config.c - Setup utilities:
bin/misc/ - Default configs:
config/
AFP Volume Management
- Volume definition and properties
- Access control and permissions
- Special volume types (Time Machine, etc.)
- Performance tuning options
Related Source Code:
- Volume management:
etc/afpd/volume.c - VFS operations:
libatalk/vfs/ - Extended attributes:
libatalk/adouble/
Performance Tuning for 1-10 Gbps Networks
- DSI parameter optimization
- TCP buffer tuning and congestion control
- OS-level performance tunables
- ZFS optimization for AFP workloads
- Memory scaling and resource management
Related Source Code:
- DSI implementation:
libatalk/dsi/ - Network tuning:
etc/afpd/afp_dsi.c - Performance tools:
test/testsuite/
Cross-Platform Installation and Setup
- Linux distributions (Ubuntu, CentOS, etc.)
- FreeBSD installation and configuration
- macOS deployment considerations
- Container deployment (Docker)
Related Source Code:
- Build system:
meson.build - Init scripts:
distrib/initscripts/ - Container support:
Dockerfile
Contributing to Netatalk
- Coding standards and style guidelines
- Testing procedures and frameworks
- Patch submission process
- Code review requirements
Related Source Code:
- Test suite:
test/ - Build configuration:
meson.build,meson_options.txt - CI/CD:
.github/
Problem Diagnosis and Resolution
- Frequently encountered problems
- Debugging techniques and tools
- Log analysis and interpretation
- Performance troubleshooting
Related Source Code:
- Logging utilities:
libatalk/util/ - Debug tools:
bin/misc/ - Test utilities:
test/afpd/
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