-
Notifications
You must be signed in to change notification settings - Fork 100
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 |
Deployment | Platform-specific deployment | Linux, FreeBSD, macOS considerations |
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/
doc/developer/
├── index.md # This navigation index
├── README.md # Main developer overview
├── api/
│ └── libatalk.md # API reference
├── architecture/
│ ├── overview.md # System architecture
│ ├── protocol-stack.md # Protocol implementation
│ └── data-flow.md # Data processing
├── components/
│ ├── afpd.md # AFP daemon
│ ├── appletalk.md # AppleTalk support
│ ├── authentication.md # Authentication system
│ ├── cnid-system.md # CNID database
│ └── netatalk.md # System integration
├── configuration/
│ ├── setup.md # Server setup
│ └── volumes.md # Volume configuration
├── deployment/
│ └── platforms.md # Platform deployment
├── development/
│ └── guidelines.md # Development process
├── performance/
│ └── high-speed-networking.md # Performance optimization
└── troubleshooting/
└── common-issues.md # Problem resolution
- New Contributors: Start with README.md and Development Guidelines
- System Understanding: Review Architecture section completely
- Component Development: Focus on specific Components documentation
- Performance Tuning: See Performance section
- Deployment: Check Platform-Specific guidance
- API Usage: Reference libatalk API documentation
Each documentation section includes direct links to related source code files. Use these references to:
- Locate implementation details
- Understand code organization
- Find entry points for modifications
- Explore related functionality
- Check Common Issues for known problems
- Review API Documentation for programming questions
- Consult Architecture Overview for design questions
- Follow Development Guidelines for contribution process
Last Updated: 2025-01-08 Documentation Version: 4.0.0
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
- 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