{"id":"cometahn1042f/signal","name":"signal","scope":"cometahn1042f","platform":"roblox","description":"Signal For Roblox.","version":"0.1.3","latest":"0.1.3","versions":["0.1.0","0.1.1","0.1.2","0.1.3"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"6971ab2a9fa8ddcadf1195eb3d1eeb6d49625ed9bf7ee6cccb2f47a1761551a0","likes":0,"downloads":0,"install":"forest install cometahn1042f/signal","url":"https://forest.dev/p/roblox/cometahn1042f/signal","files":"https://api.forest.dev/ai/package/roblox/cometahn1042f/signal/files","readme":"# Signal\n\nSignal is a high-performance, strictly-typed event signaling library for Luau on Roblox. It features decoupled fire/subscribe interfaces, coroutine thread pooling for zero-allocation dispatches, and stateful projection signals.\n\n## Documentation Index\n\n- [API Reference](file:///c:/Lua/Libraries/Signal/docs/api-reference.md): `createSignal`, `createReadableSignal`, `Subscription`, `Signal`, `FireSignal`, `ReadableSignal`.\n- [Architecture & Design](file:///c:/Lua/Libraries/Signal/docs/architecture-and-design.md): Thread pooling, doubly-linked node list model, and decoupled fire functions.\n- [Performance & Memory Profile](file:///c:/Lua/Libraries/Signal/docs/performance-and-memory.md): Algorithmic complexity and thread allocation benchmarks.\n- [Failure Modes & Exception Guarantees](file:///c:/Lua/Libraries/Signal/docs/failure-modes.md): Safe node unlinking during iteration and coroutine exception isolation.\n- [Executable Examples](file:///c:/Lua/Libraries/Signal/docs/examples.md): Executable Luau code samples for signals and readable signals.\n\n## Quick Start\n\n```luau\nlocal Signal = require(path.to.Signal)\n\n-- Create a writable signal\nlocal signal, fire = Signal.createSignal()\n\n-- Subscribe to signal\nlocal subscription = signal:subscribe(function(message: string)\n    print(\"Received:\", message)\nend)\n\n-- Fire signal using returned fire function\nfire(\"Hello, Signal!\")\n\n-- Unsubscribe\nsubscription:unsubscribe()\n```\n","readmeTruncated":false}