Files

86 lines
2.9 KiB
Markdown

---
title: liblogos
type: Developer Tool
priority: 0
category: Developer Tools
---
C++ SDK library providing the core API for developing Logos modules, enabling inter-module communication and access to platform services.
> [!ai-generated]
> This entire document was generated by an LLM and has not yet been human-reviewed.
## FURPS+
### Functionality
- Provide module development framework with lifecycle management
- Enable inter-module communication via Qt Remote Objects
- Abstract platform services (storage, messaging, networking)
- Support plugin architecture for extensibility
- Provide cryptographic primitives and key management APIs
### Usability
- Offer clear API documentation and examples
- Include CMake integration for build systems
- Provide module templates and scaffolding tools
- Support multiple platforms (Linux, macOS, Windows)
### Reliability
- Ensure process isolation between modules
- Provide graceful error handling and recovery
- Support hot-reloading of modules during development
- Enable robust IPC with automatic reconnection
### Performance
- Minimize overhead for inter-module communication
- Support asynchronous operations to prevent blocking
- Optimise for low-latency message passing
- Enable parallel execution of independent modules
### + (Privacy, Anonymity, Censorship-Resistance)
- **Privacy**: Built-in support for encrypted communication between modules
- **Security**: Sandboxed module execution with controlled permissions
- **Censorship-Resistance**: Enable development of censorship-resistant applications
- **Modularity**: Isolate sensitive operations in separate processes
## Demand Validation
**Potential Users:** Core platform developers, module developers, third-party contributors
**Use Cases:**
- Building new Logos Core modules (wallet, consensus, networking)
- Creating custom blockchain extensions
- Developing privacy-preserving application backends
- Integrating external services with Logos infrastructure
## Possible Implementation
- **IPC Layer**: Qt Remote Objects for type-safe inter-process communication
- **Module API**: Abstract base classes for module lifecycle hooks
- **Service Registry**: Centralized discovery of available modules and services
- **Build System**: CMake with module templates and packaging support
- **Platform Abstraction**: Cross-platform APIs for filesystem, networking, crypto
## Technical Validation
**Risks & Challenges:**
- Maintaining API stability across platform versions
- Balancing flexibility with security constraints
- Documentation quality for third-party developers
- Performance overhead of process isolation
- Cross-platform compatibility and testing
**Integration Points:**
- [[engineering/infrastructure_essentials/logos_storage|Logos Storage]] client integration
- [[engineering/infrastructure_essentials/logos_messaging|Logos Messaging]] client integration
- Logos Core runtime for module hosting
- Operating system services (process management, IPC)