{"id":"cometahn1042f/janitor","name":"janitor","scope":"cometahn1042f","platform":"roblox","description":"Janitor For Roblox","version":"0.1.6","latest":"0.1.6","versions":["0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{"cometahn1042f/promise":{"version":"^0.1.3","alias":"Promise"}},"integrity":"c836013f0900515529283d72c7332418c1051b743fe1a0dce42d04fa13741697","likes":0,"downloads":0,"install":"forest install cometahn1042f/janitor","url":"https://forest.dev/p/roblox/cometahn1042f/janitor","files":"https://api.forest.dev/ai/package/roblox/cometahn1042f/janitor/files","readme":"# Janitor\n\nJanitor is a high-performance memory management and object cleanup library for Luau on Roblox. It tracks instances, connections, functions, promises, and custom objects, ensuring deterministic destruction and preventing memory leaks.\n\n## Documentation Index\n\n- [API Reference](file:///c:/Lua/Libraries/Janitor/docs/api-reference.md): Complete class definition, types, and method signatures.\n- [Architecture & Design](file:///c:/Lua/Libraries/Janitor/docs/architecture-and-design.md): System design, weak-key registry model, and trade-offs.\n- [Performance & Memory Profile](file:///c:/Lua/Libraries/Janitor/docs/performance-and-memory.md): Algorithmic complexity bounds and thread cleanup mechanics.\n- [Failure Modes & Exception Guarantees](file:///c:/Lua/Libraries/Janitor/docs/failure-modes.md): Exception safety, re-destroy suppression, and edge cases.\n- [Executable Examples](file:///c:/Lua/Libraries/Janitor/docs/examples.md): Practical Luau usage patterns and code samples.\n\n## Quick Start\n\n```luau\nlocal Janitor = require(path.to.Janitor)\nlocal janitor = Janitor.new()\n\n-- Track a connection\njanitor:Add(workspace.ChildAdded:Connect(print), \"Disconnect\")\n\n-- Track an Instance\nlocal part = Instance.new(\"Part\")\njanitor:Add(part, \"Destroy\")\n\n-- Clean up everything\njanitor:Cleanup()\n```\n","readmeTruncated":false}