Repository Layout¶
This section describes the standard structure of all DaaS-IoT SDK repositories. Each SDK (C++, Python, Qt, Java/JNI, Android) follows the same architectural principle: the repository contains only wrapper code, build scripts, and examples.
Native binaries (libdaas) and runtime headers are never stored inside the repo:
they are always fetched dynamically during the build.
1. Repository Structure (General Model)¶
A typical DaaS-IoT SDK repository follows this structure:
repo/
│
├── src/ # Source code of the SDK binding (C++, Qt, Python, Java/JNI...)
├── include/ # Wrapper headers only (native runtime headers fetched externally)
├── lib/ # Native libdaas fetched dynamically (never committed)
│
├── examples/ # Example applications and usage demonstrations
├── docs/ # Auto-generated documentation (optional)
│
├── CMakeLists.txt # Build configuration
└── README.md # High-level SDK description
2. Directories not included in the repository¶
lib/¶
Contains the platform-specific libdaas binary fetched at build time.
include/ (native runtime headers)¶
Contains only wrapper-facing headers, not the runtime headers.
dist/¶
Local build artifacts, never committed.
3. What is kept in the repository¶
src/¶
Wrapper implementations for each language/platform.
examples/¶
Minimal runnable examples demonstrating: - node initialization - SID/DIN assignment - driver configuration - discovery & autonomous networking - dATS time synchronization - DDO send/receive - Frisbee handling
docs/ (optional)¶
Auto-generated API documentation.
4. External Artifact Fetching (Critical Concept)¶
All SDKs rely on external artifact resolution:
- precompiled
libdaas - native runtime headers
Fetched using:
- FetchContent
- MD5 integrity check
- versioned URLs
5. Example — FetchContent (placeholder)¶
include(FetchContent)
FetchContent_Declare(
libdaas
URL "https://artifacts.sebyone.com/daasiot/libdaas-linux-x86_64-vX.Y.Z.tar.gz"
URL_MD5 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)
FetchContent_MakeAvailable(libdaas)
6. Summary¶
DaaS-IoT SDK repositories are:
- minimal
- source-only
- binary-free
- consistent across platforms
- powered by dynamic artifact resolution
Only SDK logic and examples live inside each repository.