{"id":22071515,"url":"https://github.com/astrian/swift-async-network","last_synced_at":"2026-02-18T11:06:05.145Z","repository":{"id":81824076,"uuid":"486067117","full_name":"Astrian/swift-async-network","owner":"Astrian","description":"An async-favored network package used in Swift","archived":false,"fork":false,"pushed_at":"2024-09-06T11:24:48.000Z","size":20,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-20T01:31:40.193Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Astrian.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-27T06:07:06.000Z","updated_at":"2024-09-06T11:22:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b914e2c-7d3c-4487-84d2-3bd8b61852d3","html_url":"https://github.com/Astrian/swift-async-network","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Astrian/swift-async-network","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrian%2Fswift-async-network","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrian%2Fswift-async-network/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrian%2Fswift-async-network/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrian%2Fswift-async-network/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Astrian","download_url":"https://codeload.github.com/Astrian/swift-async-network/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astrian%2Fswift-async-network/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29576882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-30T20:31:59.036Z","updated_at":"2026-02-18T11:06:05.139Z","avatar_url":"https://github.com/Astrian.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Swift Async Network\nSwift Async Network (SAN) is a package used to make requests in the Swift program.\n\n## Usage\n### General method\nYou can use `try await SAN.request(\"METHOD\", \"https://example.com/endpoint\")` to execute a network request.\n\n``` swift\nimport SwiftAsyncNetwork\n\nfunc someFunction() async {\n  let (data, res) = try await SAN.request(\n    \"GET\", \"https://httpstat.us/200\",\n    params: SANReqParams(\n      query: [\"hello\": \"world\"],\n      header: [\"Content-Type\": \"application/json\", \"Accept\": \"application/json\"]\n    )\n  )\n}\n```\n\n### Shortcut methods\nThe HTTP method can be executed as a shortcut method.\n\n``` swift\nimport SwiftAsyncNetwork\n\nfunc someFunction() async {\n  let (data, res) = try await SAN.POST(\n    \"https://httpstat.us/200\",\n    params: SANReqParams(\n      query: [\"hello\": \"world\"],\n      body: [\"key\": \"value\"],\n      header: [\"Content-Type\": \"application/json\", \"Accept\": \"application/json\"]\n    )\n  )\n}\n```\n\n### Authentication\nSAN supports the `Basic` and `Bearer` authentication header structures.\n\n``` swift\nimport SwiftAsyncNetwork\n\nfunc someFunction() async {\n  // Basic auth\n  let (data, res) = try await SAN.POST(\n    \"https://httpstat.us/200\",\n    params: SANReqParams(\n      auth: SANAuthCred(username: \"ren_amaniya\", password: \"takeurheart\")\n    )\n  )\n\n  // Bearer auth\n  let (data, res) = try await SAN.POST(\n    \"https://httpstat.us/200\",\n    params: SANReqParams(\n      auth: SANAuthCred(token: \"kaitochannel\")\n    )\n  )\n}\n```\n\n### Instantiation\nYou can create a unique SAN instance to manage the config (domain or base URL of the backend, headers, authentication parameters, etc.) at the instance level. Note that the `body` and `query` parameters are not supported inside the instance.\n\nYou can also pass the SAN instance through the environment objects to create and manage the network requests at the whole project level.\n\nShortcut methods and config overwritten features are also supported in the instance.\n\n\n``` swift\nimport SwiftAsyncNetwork\nimport SwiftUI\n\nstruct magusApp: App {\n  var backend = try! SANInstance(baseURL: \"https://backe.nd/\", params: SANReqParams(\n    auth: SANAuthCred(username: \"ren_amaniya\", password: \"takeurheart\")\n  ))\n  \n  var body: some Scene {\n    WindowGroup {\n      ContentView().environmentObject(backend)\n    }\n  }\n}\n\nstruct ContentView: View {\n  @EnvironmentObject var backend: SANInstance\n  var body: some View {\n    VStack {\n      Text(\"Hello World!\")\n    }.onAppear {\n        Task {\n          let (data, _) = try await backend.GET(\"/endpoint.json\", params: SANReqParams(query: [\"page\":\"1\"]))\n          let dataString = String(data: data, encoding: .utf8)\n          print(dataString ?? \"\")\n        }\n      }\n  }\n}\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrian%2Fswift-async-network","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrian%2Fswift-async-network","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrian%2Fswift-async-network/lists"}