Plugin Development
In This Section
| Page | Topics |
|---|---|
| Setting Up Your Environment | Obtain and set up your development tools |
| Building a Real Plugin | A real-life Solari split-flap display plugin |
| Plugin SDK Reference | Complete reference for NeuroSim Go and Python SDKs |
Developer Concepts
This section describes concepts and paradigms that plugin developers must be familiar with to successfully write NeuroSim plugins. First, some important aspects of plugins: isolation. NeuroSim enforces strong isolation boundaries between plugins to ensure reliability and security:
Binary Isolation
NeuroSim recommends that each plugin runs as an independent operating system process. This assures that memory is not shared, preventing one plugin from corrupting another's state or causing cascading failures.
Namespace Isolation
Every scenario run creates an isolated Kafka topic namespace. Plugins in different scenario runs cannot accidentally interact, even if they share the same plugin implementation.
Configuration Isolation
Plugin configuration is injected at startup and cannot be modified by other plugins. This ensures that each plugin operates according to its intended parameters.
Failure Isolation
If a plugin crashes or hangs, it does not directly affect other running scenarios.