Developer Guide
This guide helps you develop custom modules and adapters to extend the functionality of ErisPulse.
Table of Contents
Module Development
- Getting Started with Module Development - Create your first module
- Core Concepts of Modules - Core concepts and architecture of modules
- Event Wrapper Class Explained - Complete documentation of the Event object
- Best Practices for Modules - Recommendations for developing high-quality modules
Data Models
- Data Model Layer (ORM) - Declarative models, automatic table creation, and CRUD operations
Adapter Development
- Getting Started with Adapter Development - Create your first adapter
- Core Concepts of Adapters - Core concepts of adapters
- SendDSL Explained - Complete documentation of the Send message DSL
- Event Converters - Implementing event converters
- Best Practices for Adapters - Recommendations for developing high-quality adapters
Testing and Troubleshooting
- Module Testing (ErisPulse-Testing) - TestBot, event factories, and assertion utilities
- Module Troubleshooting Guide - Methods for locating issues when a module fails to load, events don't respond, or commands don't trigger
Publishing Guide
- Publishing Guide and Module Store Guide - How to publish your work to PyPI and the ErisPulse module store
Development Preparation
Before starting development, please ensure that you:
- Read Basic Concepts
- Familiarized yourself with Event Handling
- Installed the development environment (Python >= 3.10)
- Installed the ErisPulse SDK
Development Type Selection
Choose the appropriate development type based on your needs:
| Development Type | Use Case | Getting Started |
|---|---|---|
| Module Development | Extend bot functionality, implement business logic, provide commands and message handling | Getting Started with Module Development |
| Adapter Development | Connect to new messaging platforms, enable cross-platform communication, provide platform-specific features | Getting Started with Adapter Development |
If you want to extend the bot's functionality (such as adding commands or handling messages), choose module development. If you need to connect the bot to a new platform, choose adapter development.
Development Tools
Project Templates
ErisPulse provides example projects as references:
- Module Example - The complete project structure for a module
- Adapter Example - The complete project structure for an adapter
Development Mode
Use hot-reload mode for development, where code changes automatically trigger reloads:
epsdk run main.py --reload
Debugging Tips
Enable DEBUG or TRACE level logging in config/config.toml:
[ErisPulse.logger]
# DEBUG: Outputs development and debugging information such as module loading and route registration
# TRACE: The lowest level, outputs detailed framework internal processes such as event dispatching, storage writes, and lazy loading
level = "DEBUG"
Publish Your Module
For the complete publishing process, please refer to the Publishing and Module Store Guide, which includes PyPI publishing steps and the ErisPulse module store submission process.
Related Documentation
- Standards - Technical standards to ensure compatibility
- Platform Features Guide - Learn about the features of each platform adapter