{"id":32149290,"url":"https://github.com/dannys42/swiftpacketprocessor","last_synced_at":"2025-10-21T09:53:13.881Z","repository":{"id":63907542,"uuid":"481081860","full_name":"dannys42/SwiftPacketProcessor","owner":"dannys42","description":"A type-safe packet processor framework in Swift","archived":false,"fork":false,"pushed_at":"2022-05-28T18:30:42.000Z","size":336,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-21T09:52:45.294Z","etag":null,"topics":["file","json","packet","packetprocessor","socket","swift","tcp"],"latest_commit_sha":null,"homepage":"https://dannys42.github.io/SwiftPacketProcessor/documentation/packetprocessor/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dannys42.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-13T05:20:52.000Z","updated_at":"2023-11-29T13:47:00.000Z","dependencies_parsed_at":"2022-11-29T07:11:13.654Z","dependency_job_id":null,"html_url":"https://github.com/dannys42/SwiftPacketProcessor","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/dannys42/SwiftPacketProcessor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannys42%2FSwiftPacketProcessor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannys42%2FSwiftPacketProcessor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannys42%2FSwiftPacketProcessor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannys42%2FSwiftPacketProcessor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dannys42","download_url":"https://codeload.github.com/dannys42/SwiftPacketProcessor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannys42%2FSwiftPacketProcessor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280240305,"owners_count":26296527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["file","json","packet","packetprocessor","socket","swift","tcp"],"created_at":"2025-10-21T09:53:11.805Z","updated_at":"2025-10-21T09:53:13.876Z","avatar_url":"https://github.com/dannys42.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://swiftpackageindex.com/dannys42/SwiftPacketProcessor\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fdannys42%2FSwiftPacketProcessor%2Fbadge%3Ftype%3Dswift-versions\"\u003e\u003c/a\u003e\n\u003ca href=\"https://swiftpackageindex.com/dannys42/SwiftPacketProcessor\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fdannys42%2FSwiftPacketProcessor%2Fbadge%3Ftype%3Dplatforms\"\u003e\u003c/a\u003e\n\u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache2-blue.svg?style=flat\" alt=\"Apache 2\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# PacketProcessor\n\nThe Swift `PacketProcessor` provides a simple, type-safe way of handling structured packets given a data stream.\n\n`PacketProcessor` handles the details of buffer management when reading a data stream.  Callers need only push newly received data to the `PacketProcessor`.  The correct handlers for the appropriately typed packet will be called when appropriate.\n\nPacket definitions must include rules for validating the packet and returning the number of data elements consumed by the packet. See `DataPacket` and `StringPacket`.\n\nStreams can have a base collection type of `String` or `Data` by initializing as `PacketProcessor\u003cString\u003e` or `PacketProcessor\u003cData\u003e`.\n\n\n## Installation\n\n### Swift Package Manager\nAdd the `PacketProcessor ` package to the dependencies within your application's `Package.swift` file.  Substitute \"x.y.z\" with the [latest PacketProcessor release](https://github.com/dannys42/SwiftPacketProcessor/releases).\n\n```swift\n.package(url: \"https://github.com/dannys42/SwiftPacketProcessor\", from: \"x.y.z\")\n```\n\nAdd `PacketProcessor` to your target's dependencies:\n\n```swift\n.target(name: \"example\", dependencies: [\"PacketProcessor\"]),\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannys42%2Fswiftpacketprocessor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdannys42%2Fswiftpacketprocessor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannys42%2Fswiftpacketprocessor/lists"}