{"id":16684528,"url":"https://github.com/rushisangani/networkkit","last_synced_at":"2025-05-14T23:31:05.304Z","repository":{"id":217680751,"uuid":"744503964","full_name":"rushisangani/NetworkKit","owner":"rushisangani","description":"Testable network layer seamlessly integrating Combine Framework, and Async/Await using Swift Package","archived":false,"fork":false,"pushed_at":"2024-01-18T08:17:39.000Z","size":20,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T00:24:15.838Z","etag":null,"topics":["async-await","combine-framework","framework","ios-network-layer","swift","swiftpackagemanager"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rushisangani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-17T12:41:56.000Z","updated_at":"2024-10-16T11:04:37.000Z","dependencies_parsed_at":"2024-01-17T22:39:36.259Z","dependency_job_id":null,"html_url":"https://github.com/rushisangani/NetworkKit","commit_stats":null,"previous_names":["rushisangani/networkkit"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rushisangani%2FNetworkKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rushisangani%2FNetworkKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rushisangani%2FNetworkKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rushisangani%2FNetworkKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rushisangani","download_url":"https://codeload.github.com/rushisangani/NetworkKit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254248076,"owners_count":22038963,"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","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":["async-await","combine-framework","framework","ios-network-layer","swift","swiftpackagemanager"],"created_at":"2024-10-12T14:44:10.830Z","updated_at":"2025-05-14T23:31:00.265Z","avatar_url":"https://github.com/rushisangani.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NetworkKit\n\niOS app's connectivity with NetworkKit – a simple yet powerful network layer seamlessly integrating Combine Framework, Async/Await, and Unit Tests.\n\n# GitHub Repos \n\nCheckout this sample project [SwiftMVVMDemo](https://github.com/rushisangani/SwiftMVVMDemo).\n\n## Examples\n\n```swift\npublic protocol NetworkHandler {\n    func fetch\u003cT: Decodable\u003e(request: Request) async throws -\u003e T\n    func fetch\u003cT: Decodable\u003e(request: Request) -\u003e AnyPublisher\u003cT, RequestError\u003e\n}\n```\n\n```swift\nimport NetworkKit\n\nclass PostService: PostRetrievalService {\n    let networkManager: NetworkHandler\n    \n    init(networkManager: NetworkHandler = NetworkManager()) {\n        self.networkManager = networkManager\n    }\n    \n    func getPosts() async throws -\u003e [Post] {\n        try await networkManager.fetch(request: PostRequest.getPosts)\n    }\n}\n```\n\n### Installation\n\nAdd `NetworkKit` to your project using Swift Package Manager - https://github.com/rushisangani/NetworkKit\n\n## Contributions\n\n Feel free to submit issues or pull requests to enhance the functionality of NetworkKit.\n\n## Connect with Me\n\nConnect with me on [LinkedIn](https://www.linkedin.com/in/rushisangani/) or follow me on [Medium](https://medium.com/@rushisangani).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frushisangani%2Fnetworkkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frushisangani%2Fnetworkkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frushisangani%2Fnetworkkit/lists"}