Skip to content

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.