Plugin Development

In This Section

PageTopics
Setting Up Your EnvironmentObtain and set up your development tools
Building a Real PluginA real-life Solari split-flap display plugin
Plugin SDK ReferenceComplete 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.