「すべての存在は、メッセージで生まれ、メッセージで終わる」
セリンの大改革完了 - 基底クラス継承完全排除!
Latest: v14.0 - Pure Message System 🚀
VoidCore is a pure message-based system that enables beautiful plugin communication without inheritance. Think of it as a "postal service" for your application:
- 🏛️ VoidCore = Postal office that routes messages
- 🤖 Plugins = Customers who send and receive mail
- 📮 Messages = Letters with specific types (Notice, Request, Response, Proposal)
- 📋 Subscribe = Write on bulletin board "I want this type of mail"
New to VoidCore? Start with our interactive demo:
Watch plugins talk to each other in real-time! See exactly which functions are called and how messages flow through the system.
git clone https://github.com/moe-charm/voidcore.js
cd voidcore-js
# Open examples/index.html in your browser - no build required!import { voidCore, Message, createPlugin } from './src/index.js'
// Create a plugin (no inheritance!)
const myPlugin = createPlugin({
pluginId: 'my-awesome-plugin',
autoHealth: true
}, {
async run() {
await this.initialize();
// Listen for messages
this.on('Notice', 'user.login', (msg) => {
console.log('User logged in:', msg.payload.userId);
});
// Send messages
await this.notice('plugin.ready', {
timestamp: Date.now()
});
}
});
// Start the plugin
await myPlugin.run();- ❌ Base Class Inheritance → ✅ Pure Composition
- ❌ Forced Lifecycle → ✅ Optional Methods
- ❌ Type Constraints → ✅ Message-based Cooperation
- ❌ Complex Code → ✅ "Pleasant from the Start" Code
Before (Inheritance Hell):
class MyPlugin extends AutonomousPlugin {
constructor() {
super('my-plugin'); // Required base class
}
async _prepare() { /* Forced implementation */ }
async _work() { /* Forced lifecycle */ }
}After (Pure Beauty):
const myPlugin = createPlugin({
pluginId: 'my-plugin'
}, {
// Complete freedom - implement what you need
async run() {
await this.initialize(); // Optional
// Your logic here
}
});VoidCore uses four clear message types for all communication:
await plugin.notice('user.login', {
userId: 123,
timestamp: Date.now()
});const request = Message.intentRequest('file_manager', 'file.open', {
path: '/documents/readme.txt'
});
await voidCore.publish(request);const response = Message.intentResponse('file.open', {
status: 'success',
content: 'File content here...'
});await plugin.propose('backup_manager', 'system.backup', {
action: 'Create daily backup',
estimatedTime: 30000
});Experience VoidCore in action:
- 📮 Simple VoidCore Demo - Interactive postal service visualization
- 🌌 Galaxy Viewer - Beautiful space physics
- 🧠 VoidIDE Genesis v2.0 - NEW! Complete IDE with analytics & visualization
- 🌟 VoidIDE Genesis MVP - Self-creating IDE that runs on VoidCore
- 🌟 Message City - Pure v14.0 system with traffic simulation
- 💓 Heart Transplant Demo - Transport swapping live
- 📚 All Examples - Complete demo collection
VoidCore v14.0 uses optional protocols instead of forced inheritance:
// Plugins can optionally respond to health checks
registerHealthCheck('my-plugin', {
customStatus: 'All systems operational'
});
// Send health check request
await voidCore.publish(Message.intentRequest('*', 'core.health.ping', {}));// Plugins can declare their process info
declareProcess('my-plugin', {
name: 'My Awesome Plugin',
version: '1.0.0'
});DefaultTransport - Local memory (automatic)
// No setup needed - works out of the boxWebSocketTransport - Real-time networking
import { WebSocketTransport } from './src/transport.js'
await voidCore.setTransport(new WebSocketTransport('ws://server.com'))BroadcastChannelTransport - Inter-tab communication
import { BroadcastChannelTransport } from './src/transport.js'
await voidCore.setTransport(new BroadcastChannelTransport('my-app'))export class MyTransport extends ITransport {
async initialize() { /* Setup */ }
async send(message, channel) { /* Send logic */ }
subscribe(handler, channel) { /* Subscribe logic */ }
getStats() { /* Statistics */ }
async destroy() { /* Cleanup */ }
}| Version | Feature | Philosophy |
|---|---|---|
| v14.0 | 🚀 Pure Message System | "All existence is born from messages and ends with messages" |
| v13.0 | 💓 Transport Adapters | Heart-swappable communication layers |
| v12.0 | 🚀 Multi-Channel | Performance boost with message separation |
| v11.0 | 🤖 Autonomous Core | Plugin lifecycle and message routing |
voidcore-js/
├── src/ # Core library (v14.0)
│ ├── index.js # New entry point
│ ├── pure_plugin_system.js # Serin's Great Reform
│ ├── voidcore.js # "The Vessel of Silence"
│ ├── message.js # Message types
│ ├── transport.js # Transport adapters
│ ├── channel-manager.js # Channel management
│ └── legacy/ # v13.0 compatibility
├── examples/ # v14.0 demos
│ ├── voidcore-demo-visual.html # Beginner-friendly
│ ├── message-city-modern.html # Pure system demo
│ └── legacy/ # Previous examples
├── challenge/ # Interactive demos
├── docs/ # Documentation
└── VOIDCORE_V14_CPP_SPEC.md # C++ implementation spec
Get started in 3 simple steps:
- Clone:
git clone https://github.com/moe-charm/voidcore.js - Open: Load examples in your browser
- Build: Tell Claude Code to read the docs and "build [your app] with VoidCore"
- C++ Implementation Spec - Complete specification for C++ port
- Pure Plugin Guide - Interactive learning
- v13.0 Transport Architecture - Heart transplant guide
- v12.0 Multi-Channel - Performance improvements
- Plugin Lifecycle - Autonomous plugin development
VoidCore embodies the principle of "静寂の器" (The Vessel of Silence):
- 🤐 Silent Routing - Core knows nothing about message content, only types
- 🕊️ Non-Invasive - No forced inheritance, pure composition
- 🤝 Gentleman's Agreement - Optional protocols, maximum freedom
- 💫 Pure Beauty - "Pleasant from the start" code
// ❌ Don't fight the system
class MyPlugin extends BaseClass {
// Complex inheritance hierarchy
}
// ✅ Flow with the messages
const myPlugin = createPlugin(config, {
// Pure, beautiful, simple
});- 🧠 VoidIDE Genesis v2.0 - Complete IDE with real-time analytics & visualization (v14.0 Phase 2)
- 🌊 Message Flow Visualization - Real-time message flow with animated particle effects
- 📊 Plugin Monitor Dashboard - Advanced plugin status monitoring & health checks
- ⚡ Performance Metrics System - Comprehensive performance analysis & optimization
- 🌟 VoidIDE Genesis - Self-creating IDE that runs on VoidCore itself (v14.0)
- 🚀 Pure Message System - No inheritance, pure composition (v14.0)
- 🧩 CoreFusion v1.2 - Merge multiple VoidCore instances seamlessly (v14.0)
- ⚡ SimpleMessagePool - 16-20x faster batch processing (v14.0)
- 💓 Heart Transplant - Swap transport layers at runtime (v13.0)
- 🚀 Multi-Channel Performance - 40% faster with dedicated channels (v12.0)
- 🔄 Perfect Backward Compatibility - All versions work together
- 🌐 Browser-Native - Pure JavaScript, no build tools
- 📦 Zero Dependencies - Lightweight and self-contained
- 🤝 Gentleman's Agreement - Optional protocols, maximum freedom
VoidCore thrives on community contributions:
- Fork the repository
- Try the 📮 Simple VoidCore Demo first
- Create your feature branch
- Add tests and documentation
- Submit a pull request
- 🟢 JavaScript - Current (v14.0 - Production Ready)
- 🚧 C++ - In Development (Specification ready)
MIT License - see LICENSE file for details.
"哲学的に聞こえるかもしれませんが、実用性を徹底追求した結果です!"
Beautiful simplicity, infinite scalability, autonomous dignity.
- v11.0: Birth of autonomous plugins
- v12.0: Performance breakthrough
- v13.0: Heart transplant revolution
- v14.0: Serin's Great Reform - Pure perfection achieved
JavaScript Version: Stable and production-ready C++ Version: Next frontier for ultimate performance
⭐ Star this repo if VoidCore sparked joy in your development workflow!
Ready to experience the beauty of pure message-based architecture?
🚀 Start with the Simple Demo