Skip to content
Andy Lemin edited this page Aug 16, 2025 · 3 revisions

WIP - ALL LINKS IN THIS WIKI STRUCTURE ARE CURRENTLY BROKEN DURING WIKI MIGRATION

Netatalk Developer Documentation 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.

Quick Navigation

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

Getting Started

Primary Documentation Entry Point

  • Project overview and architecture summary
  • Build instructions and dependencies
  • Development environment setup
  • Contributing guidelines

Related Source Code:


API Reference

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:


Architecture

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:

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:

Request Processing and Data Movement

  • Request/response cycle analysis
  • Data transformation pipelines
  • Caching and buffering strategies
  • I/O optimization techniques

Related Source Code:


Components

Core Server Implementation

  • AFP daemon architecture and functionality
  • Client connection management
  • File and directory operations
  • Resource fork handling

Related Source Code:

Legacy AppleTalk Protocol Support

  • AppleTalk protocol stack
  • Network routing and discovery
  • Legacy client compatibility
  • Migration considerations

Related Source Code:

User Authentication and Authorization

  • Authentication methods (PAM, DHX, etc.)
  • User account management
  • Password handling and security
  • Authorization and permissions

Related Source Code:

Catalog Node ID Management

  • CNID database architecture
  • File/directory indexing system
  • Database backends (dbd, mysql, sqlite)
  • Performance optimization

Related Source Code:

System Service and Integration

  • Service initialization and management
  • Configuration file processing
  • System integration points
  • Process coordination

Related Source Code:


Configuration

Installation and Initial Configuration

  • Server installation procedures
  • Configuration file structure and options
  • Network setup and discovery
  • Security configuration

Related Source Code:

AFP Volume Management

  • Volume definition and properties
  • Access control and permissions
  • Special volume types (Time Machine, etc.)
  • Performance tuning options

Related Source Code:


Performance

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:


Deployment

Cross-Platform Installation and Setup

  • Linux distributions (Ubuntu, CentOS, etc.)
  • FreeBSD installation and configuration
  • macOS deployment considerations
  • Container deployment (Docker)

Related Source Code:


Development

Contributing to Netatalk

  • Coding standards and style guidelines
  • Testing procedures and frameworks
  • Patch submission process
  • Code review requirements

Related Source Code:


Troubleshooting

Problem Diagnosis and Resolution

  • Frequently encountered problems
  • Debugging techniques and tools
  • Log analysis and interpretation
  • Performance troubleshooting

Related Source Code:


Documentation Organization

File Structure

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

How to Use This Documentation

  1. New Contributors: Start with README.md and Development Guidelines
  2. System Understanding: Review Architecture section completely
  3. Component Development: Focus on specific Components documentation
  4. Performance Tuning: See Performance section
  5. Deployment: Check Platform-Specific guidance
  6. API Usage: Reference libatalk API documentation

Source Code Navigation

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

Getting Help


Last Updated: 2025-01-08 Documentation Version: 4.0.0

Clone this wiki locally