# DAP SDK Documentation
Comprehensive documentation for DAP SDK - Deัentralized Application Platform Software Development Kit.
## Quick Navigation
### ๐ **Documentation Sections**
- **[[DAP SDK Reference#Modules|Modules]]** - Complete SDK modules with detailed documentation
- **[[DAP SDK Reference#Getting Started|Getting Started]]** - Installation, setup, and first application
- **[[DAP SDK Reference#Architecture & Design|Architecture & Design]]** - System architecture and core concepts
- **[[DAP SDK Reference#Development|Development]]** - Development guides, best practices, and advanced topics
- **[[DAP SDK Reference#Support & Resources|Support & Resources]]** - Troubleshooting, documentation, and community
---
## Modules
### **[[Modules/Module Overview|Module Overview]]** - Complete modules reference and architecture
Browse all DAP SDK modules organized by Foundation, Communication, and Service layers with links to detailed documentation for each module.
---
## Getting Started
### **[[ETC/Installation Guide|Installation Guide]]** - Complete installation instructions for all platforms
Step-by-step installation guide for Ubuntu, Debian, Arch Linux, macOS, and Windows with package managers and binary downloads.
### **[[ETC/Building from Source|Building from Source]]** - Build DAP SDK from source code
Comprehensive build instructions including dependencies, compilation options, CMake configuration, and automated build scripts for all platforms.
### **[[ETC/First Application|First Application]]** - Step-by-step tutorial for your first DAP application
Complete tutorial covering project setup, basic operations, configuration management, and deployment with working code examples.
---
## Architecture & Design
### **[[ETC/Architecture Overview|Architecture Overview]]** - High-level architecture and design principles
Detailed system architecture with layer diagrams, module dependencies, design patterns, and integration guidelines for understanding the DAP SDK structure.
### **[[ETC/Core Components|Core Components]]** - Essential system components and data structures
Documentation of fundamental data types, structures, and components that form the foundation of all DAP SDK applications.
---
## Development
### **[[ETC/Development Guide|Development Guide]]** - Development methodology and best practices
Comprehensive development guide covering coding standards, testing procedures, debugging techniques, and performance optimization for DAP SDK applications.
### **[[ETC/Troubleshooting|Troubleshooting]]** - Common issues and problem resolution
Detailed troubleshooting guide with diagnostic procedures, error resolution, performance issues, and system debugging techniques.
### **[[ETC/Glossary|Glossary]]** - Alphabetical function reference and quick lookup
Complete alphabetical reference of all DAP SDK functions with quick lookup capabilities and cross-references to detailed documentation.
---
## Support & Resources
### **[[ETC/Troubleshooting|Troubleshooting]]** - Common issues and problem resolution
Comprehensive problem resolution guide with common issues, diagnostic procedures, and solutions for DAP SDK development.
### **[[Other Languages/README|Other Languages]]** - Documentation in multiple languages
Access to DAP SDK documentation translated into multiple languages for international development teams.
---
## About DAP SDK
DAP SDK (Decentralized Application Platform Software Development Kit) is a comprehensive foundational platform providing essential libraries for building high-performance, scalable applications with advanced networking, cryptographic, and data management capabilities. It serves as the core infrastructure for distributed applications and provides:
- **๐๏ธ Foundation Layer** - System initialization, memory management, cryptographic operations, and testing framework
- **๐ Communication Layer** - Event-driven I/O, networking infrastructure, client-server architecture, and streaming protocols
- **โ๏ธ Service Layer** - Database operations, plugin system, and application services
- **โก High Performance** - Optimized for speed, memory efficiency, and scalability across platforms
- **๐ Cross-Platform** - Linux, macOS, and Windows compatibility with native optimizations
### Key Features
**Foundation Infrastructure:**
- System initialization and configuration management
- Memory management with debugging and leak detection
- Comprehensive logging system with levels and filtering
- Cryptographic operations with classical and post-quantum algorithms
- Testing framework with unit testing, integration testing, and benchmarking
**Communication Infrastructure:**
- Asynchronous event-driven I/O with high-performance networking
- Worker thread pool management and parallel processing
- Client-server architecture with SSL/TLS support
- Stream-based communication with session management
- Connection pooling, load balancing, and failure detection
**Service Infrastructure:**
- Distributed database operations with replication and synchronization
- Plugin architecture with dynamic loading and dependency resolution
- Application service management and lifecycle control
- Performance monitoring and resource optimization
### Module Architecture
DAP SDK is organized into three logical layers:
**Foundation Layer (3 modules):**
- **[[Modules/Module DAP Core|Module DAP Core]]** - System initialization, memory management, logging
- **[[Modules/Module DAP Crypto|Module DAP Crypto]]** - Cryptographic operations and security
- **[[Modules/Module DAP Test|Module DAP Test]]** - Testing framework and validation
**Communication Layer (2 modules + 4 submodules):**
- **[[Modules/Module DAP IO|Module DAP IO]]** - Event-driven I/O with 8 submodules
- **[[Modules/Module DAP Net|Module DAP Net]]** - Network layer with specialized submodules:
- **[[Modules/Module DAP Net - Client|Client]]** - Client-side networking
- **[[Modules/Module DAP Net - Server|Server]]** - Server infrastructure
- **[[Modules/Module DAP Net - Stream|Stream]]** - Streaming communication
- **[[Modules/Module DAP Net - Link Manager|Link Manager]]** - Connection management
**Service Layer (3 modules):**
- **[[Modules/Module DAP Global DB|Module DAP Global DB]]** - Database operations
- **[[Modules/Module DAP Plugin|Module DAP Plugin]]** - Plugin system
- **[[Modules/Module DAP Client|Module DAP Client]]** - Client connectivity (legacy)
### Quick Start
```bash
# Clone the repository
git clone https://gitlab.demlabs.net/dap/dap-sdk.git
cd dap-sdk
# Build and install
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
```
### Basic Usage Example
```c
#include "dap_common.h"
#include "dap_config.h"
#include "dap_events.h"
int main(int argc, char *argv[]) {
// Initialize DAP SDK
if (dap_common_init("MyDAPApp", NULL) != 0) {
log_it(L_ERROR, "Failed to initialize DAP common");
return -1;
}
// Initialize configuration
if (dap_config_init(".") != 0) {
log_it(L_ERROR, "Failed to initialize configuration");
dap_common_deinit();
return -1;
}
// Initialize event system
if (dap_events_init(dap_get_cpu_count(), 60) != 0) {
log_it(L_ERROR, "Failed to initialize events");
dap_config_deinit();
dap_common_deinit();
return -1;
}
// Start event processing
dap_events_start();
// Your application logic here
log_it(L_INFO, "โ DAP SDK application started successfully");
// Cleanup in reverse order
dap_events_stop_all();
dap_events_deinit();
dap_config_deinit();
dap_common_deinit();
log_it(L_INFO, "โ Application cleanup completed");
return 0;
}
```
### Platform Support
**Linux Distributions:**
- Ubuntu 20.04+ (LTS recommended)
- Debian 11+ (Bullseye and later)
- CentOS 8+ / RHEL 8+ / Rocky Linux 8+
- Fedora 34+ (recent versions)
- Arch Linux (rolling release)
**macOS:**
- macOS 11.0+ (Big Sur and later)
- Both Intel and Apple Silicon (M1/M2) support
**Windows:**
- Windows 10/11 with WSL2 (recommended)
- Native Windows builds with MinGW-w64
- Visual Studio 2019+ support
### Performance Characteristics
**Event-Driven Architecture:**
- Asynchronous I/O with epoll (Linux), kqueue (macOS/BSD), IOCP (Windows)
- High-performance networking with minimal memory allocation
- Scalable to thousands of concurrent connections
**Memory Management:**
- Efficient memory allocation with debugging capabilities
- Leak detection and memory profiling tools
- Optimized data structures for performance
**Cryptographic Performance:**
- Hardware-accelerated cryptographic operations where available
- Post-quantum cryptography implementation
- Secure random number generation with entropy management
### Community and Development
**Source Code and Development:**
- **Repository**: [DAP SDK GitLab](https://gitlab.demlabs.net/dap/dap-sdk)
- **Issue Tracking**: [GitLab Issues](https://gitlab.demlabs.net/dap/dap-sdk/-/issues)
- **Development**: Active development with regular updates
**License:**
- **License**: GNU General Public License v3.0
- **Commercial**: Commercial licensing available for proprietary applications
**Documentation Standards:**
- Complete API documentation with working examples
- All code examples include proper error handling
- Cross-platform compatibility notes
- Performance considerations and optimization guidelines
---
## Getting Started Guide
### For New Developers
1. **[[ETC/Installation Guide|Install DAP SDK]]** - Set up development environment
2. **[[ETC/First Application|Build First Application]]** - Complete step-by-step tutorial
3. **[[Modules/Module DAP Core|Understand Core Module]]** - Learn fundamental concepts
4. **[[ETC/Development Guide|Follow Best Practices]]** - Development methodology
### For Experienced Developers
1. **[[ETC/Architecture Overview|Review Architecture]]** - System design and patterns
2. **[[Modules/Module Overview|Explore Modules]]** - Complete module reference
3. **[[ETC/Core Components|Study Components]]** - Essential data structures
4. **[[ETC/Troubleshooting|Debugging Guide]]** - Problem resolution techniques
### For System Integration
1. **[[ETC/Building from Source|Source Build]]** - Custom build configurations
2. **[[Modules/Module DAP Net|Network Architecture]]** - Communication infrastructure
3. **[[Modules/Module DAP Global DB|Database Integration]]** - Data management
4. **[[Modules/Module DAP Plugin|Plugin Development]]** - Extensibility features
---
## Next Steps
- **New users**: Start with **[[ETC/Installation Guide|Installation Guide]]** and **[[ETC/First Application|First Application]]**
- **Developers**: Explore **[[ETC/Architecture Overview|Architecture Overview]]** and **[[ETC/Development Guide|Development Guide]]**
- **Module development**: Check **[[Modules/Module Overview|Module Overview]]** and specific module documentation
- **Need help**: Visit **[[ETC/Troubleshooting|Troubleshooting]]** for solutions to common issues
*Complete documentation for professional DAP SDK development and integration.*