Files
k.eaven 5669048f89 Initial commit: APIcord Discord API Emulator
- Core infrastructure: config, state management, models
- REST API server (aiohttp) with Discord-compatible endpoints
- WebSocket Gateway server (websockets) with Discord Gateway protocol
- State management with guilds, channels, users, messages, interactions
- Pydantic models for Discord objects (User, Guild, Channel, Message, etc.)
- CLI with start, test, reset, export, validate commands
- YAML-based test scenario framework
- Basic test scenario for /server_status command flow
- Unit tests for models and state manager (19 passing)
- GPL-3.0 license
2026-10-31 11:43:57 +00:00

55 lines
1.8 KiB
Markdown

# APIcord
Discord API Emulator for bot testing.
A standalone Python CLI program that emulates the Discord API (REST + WebSocket Gateway), enabling self-contained testing of Discord bots without requiring a real Discord connection.
## Features
- **REST API Server** - Implements Discord REST API endpoints needed for bot operations
- **WebSocket Gateway** - Emulates Discord's Gateway for real-time events (READY, INTERACTION_CREATE, etc.)
- **State Management** - In-memory state with guilds, channels, users, messages, and interactions
- **Test Scenarios** - YAML-based test scenarios for automated bot testing
- **CLI Interface** - Easy-to-use commands for starting, testing, and managing the emulator
## Installation
```bash
pip install -e .
# Or for development
pip install -e ".[dev]"
```
## Quick Start
```bash
# Start emulator with a test scenario
apicord start --scenario scenarios/basic_test.yaml
# Run automated test against a bot
apicord test --scenario scenarios/full_test.yaml --bot-path /path/to/bot
# Start with custom configuration
apicord start --port 8080 --guilds 2 --channels 5
```
## Project Structure
```
apicord/
├── src/apicord/
│ ├── main.py # CLI entry point
│ ├── config.py # Configuration management
│ ├── rest/ # REST API server (aiohttp)
│ ├── gateways/ # WebSocket gateway (websockets)
│ ├── state/ # State management
│ ├── models/ # Pydantic models for Discord objects
│ └── cli/ # CLI commands
├── tests/ # Unit tests
├── scenarios/ # YAML test scenarios
└── pyproject.toml
```
## License
GPL-3.0 - See LICENSE file for details.