-
Notifications
You must be signed in to change notification settings - Fork 100
Dev Docs Index
WIP - ALL LINKS IN THIS WIKI STRUCTURE ARE CURRENTLY BROKEN DURING WIKI MIGRATION
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/
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
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
- CatalogSearch
- Kerberos
- Special Files and Folders
- Spotlight
- AppleTalk Kernel Module
- Print Server
- MacIP Gateway
- MySQL CNID Backend
- Slow AFP read performance
- Limiting Time Machine volumes
- Netatalk and ZFS nbmand property
Development