{"id":"cometahn142/snap","name":"snap","scope":"cometahn142","platform":"roblox","description":"Snap For Roblox","version":"0.5.3","latest":"0.5.3","versions":["0.1.0","0.1.1","0.2.0","0.3.0","0.3.1","0.3.2","0.4.0","0.4.1","0.4.3","0.4.4","0.4.5","0.5.0","0.5.1","0.5.2","0.5.3"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{"cometahn142/prism":{"version":"^0.4.0","alias":"Prism"},"cometahn142/signify":{"version":"^0.1.2","alias":"Signify"}},"integrity":"5399f901bae583598b408dfe374f359e9b04d5d6b50e5864aed32523d3d76c82","likes":0,"downloads":0,"install":"forest install cometahn142/snap","url":"https://forest.dev/p/roblox/cometahn142/snap","files":"https://api.forest.dev/ai/package/roblox/cometahn142/snap/files","readme":"# Snap\n\n**Snap** is a high-performance networking framework for Luau/Roblox, built on the principles of binary serialization and deferred task batching.\n\n## Documentation (Diátaxis Standard)\n\n- **[Tutorial](docs/tutorial.md)**: A step-by-step lesson for getting started with Snap.\n- **[Recipes](docs/recipes.md)**: Practical guides for common real-world networking tasks.\n- **[Concepts](docs/concepts.md)**: Deep dive into the architecture and philosophies behind Snap.\n- **[Specification](docs/specification.md)**: Formal technical specification, protocol bit-maps, and API reference.\n\n---\n\n## Technical Highlights\n\n- **Binary Efficiency**: Zero-overhead serialization using Luau `buffer`.\n- **Hybrid Support**: Native `Instance` referencing via sidecar tables.\n- **Anti-Cheat**: Integrated `Guard` system for flood and malformed frame protection.\n- **Resilient Lifecycle**: `Pre-ready` packet queueing prevents loading-phase data loss.\n\n---\n\n## Minimal Example\n\n```luau\n-- Define\nlocal Net = Snap.define(\"Ping\", { Signal = Snap.event(Snap.u8, \"Reliable\") })\n\n-- Server\nSnap.channel(\"Ping\", Net).Signal:listen(print)\n\n-- Client\nSnap.channel(\"Ping\", Net).Signal:send(1)\n```\n\n*Engineered for scale. Built for Roblox.*","readmeTruncated":false}