{"id":29631875,"url":"https://github.com/local-connectivity-lab/lcl-ping","last_synced_at":"2025-07-21T12:05:46.222Z","repository":{"id":245649724,"uuid":"681509444","full_name":"Local-Connectivity-Lab/lcl-ping","owner":"Local-Connectivity-Lab","description":"A Ping library written in Swift for network latency measurement and reachability monitoring. Built with SwiftNIO","archived":false,"fork":false,"pushed_at":"2025-04-14T04:51:07.000Z","size":373,"stargazers_count":23,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-20T21:26:38.616Z","etag":null,"topics":["latency-monitor","latency-test","network","network-analysis","ping","reachability","swift"],"latest_commit_sha":null,"homepage":"https://swiftpackageindex.com/Local-Connectivity-Lab/lcl-ping/main/documentation/lclping","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/Local-Connectivity-Lab.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-22T07:04:05.000Z","updated_at":"2025-06-27T03:57:59.000Z","dependencies_parsed_at":"2024-06-23T06:33:55.467Z","dependency_job_id":"62e8c80a-439f-452a-ad56-81d46fb940be","html_url":"https://github.com/Local-Connectivity-Lab/lcl-ping","commit_stats":null,"previous_names":["local-connectivity-lab/lcl-ping"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/Local-Connectivity-Lab/lcl-ping","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Flcl-ping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Flcl-ping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Flcl-ping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Flcl-ping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Local-Connectivity-Lab","download_url":"https://codeload.github.com/Local-Connectivity-Lab/lcl-ping/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Local-Connectivity-Lab%2Flcl-ping/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266296815,"owners_count":23907015,"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-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["latency-monitor","latency-test","network","network-analysis","ping","reachability","swift"],"created_at":"2025-07-21T12:05:45.401Z","updated_at":"2025-07-21T12:05:46.207Z","avatar_url":"https://github.com/Local-Connectivity-Lab.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"images/logo.png\" alt=\"Logo\" width=\"250px\" /\u003e\n\u003c/div\u003e\n\n---\n\nLCLPing is a cross-platform Ping library written in Swift, and for Swift. It is designed to help streamline testing, measuring, and monitoring network reachability and latency for both the client side and server side applications and services.\n\n# LCLPing\n\n![Apple platform CI](https://github.com/Local-Connectivity-Lab/lcl-ping/actions/workflows/macos.yaml/badge.svg?branch=main)\n![Ubuntu CI](https://github.com/Local-Connectivity-Lab/lcl-ping/actions/workflows/ubuntu.yaml/badge.svg?branch=main)\n\n\n## Requirements\n- Swift 5.7+\n- macOS 10.15+, iOS 14+, Linux\n\n## Getting Started\n\n\n### Swift Package Manager (SPM)\n\nAdd the following to your `Package.swift` file:\n```code\n.package(url: \"https://github.com/Local-Connectivity-Lab/lcl-ping.git\", from: \"1.0.0\")\n```\n\nThen import the module to your project\n```code\n.target(\n    name: \"YourAppName\",\n    .dependencies: [\n        .product(name: \"LCLPing\", package: \"lcl-ping\")\n    ]\n)\n```\n\n### Basic Usage\n```swift\n// Reachability Test\nlet isReachable = LCLPing.reachable(via: .icmp, strategy: .multiple, host: \"google.com\")\nprint(\"is reachable: \\(isReachable)\")\n```\n\n```swift\n// Run Ping Test\n\n// create ping configuration for each run\nlet icmpConfig = ICMPPingClient.Configuration(endpoint: .ipv4(\"127.0.0.1\", 0), count: 1)\nlet httpConfig = try HTTPPingClient.Configuration(url: \"http://127.0.0.1:8080\", count: 1)\n\n// initialize test client\nlet icmpClient = ICMPPingClient(configuration: icmpConfig)\nlet httpClient = HTTPPingClient(configuration: httpConfig)\n\ndo {\n    // run the test using SwiftNIO EventLoopFuture\n    let result = try icmpClient.start().wait()\n    print(result)\n} catch {\n    print(\"received: \\(error)\")\n}\n\ndo {\n    let result = try httpClient.start().wait()\n    print(result)\n} catch {\n    print(\"received: \\(error)\")\n}\n```\n\nYou can also run the [demo](/Sources/Demo/README.md) using `make demo` or `swift run Demo` if you do not have make installed.\n\n### Features\n- Ping via ICMP and HTTP(S)\n- Support IPv4 ICMP and IPv4 and IPv6 for HTTP\n- Flexible and configurable wait time, time-to-live, count, and duration\n- Supports parsing Server-Timing in the HTTP header to account for time taken by server processing\n\n\n## Contributing\nAny contribution and pull requests are welcome! However, before you plan to implement some features or try to fix an uncertain issue, it is recommended to open a discussion first. You can also join our [Discord channel](https://discord.com/invite/gn4DKF83bP), or visit our [website](https://seattlecommunitynetwork.org/).\n\n## License\nLCLPing is released under Apache License. See [LICENSE](/LICENSE) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocal-connectivity-lab%2Flcl-ping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocal-connectivity-lab%2Flcl-ping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocal-connectivity-lab%2Flcl-ping/lists"}