{"id":13800197,"url":"https://github.com/Kitura/Kitura-NIO","last_synced_at":"2025-05-13T09:31:24.202Z","repository":{"id":46275759,"uuid":"133330351","full_name":"Kitura/Kitura-NIO","owner":"Kitura","description":"A networking library for Kitura, based on SwiftNIO","archived":false,"fork":false,"pushed_at":"2022-10-07T05:19:11.000Z","size":1398,"stargazers_count":37,"open_issues_count":22,"forks_count":24,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-05-01T19:02:53.494Z","etag":null,"topics":["http","httpserver","kitura","kitura-net","kitura-nio","linux","macos","server-side-swift","swift","swiftnio"],"latest_commit_sha":null,"homepage":"","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/Kitura.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-14T08:38:13.000Z","updated_at":"2024-10-05T15:54:27.000Z","dependencies_parsed_at":"2022-08-31T03:22:44.518Z","dependency_job_id":null,"html_url":"https://github.com/Kitura/Kitura-NIO","commit_stats":null,"previous_names":["ibm-swift/kitura-nio"],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitura%2FKitura-NIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitura%2FKitura-NIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitura%2FKitura-NIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitura%2FKitura-NIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kitura","download_url":"https://codeload.github.com/Kitura/Kitura-NIO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253913071,"owners_count":21983249,"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":["http","httpserver","kitura","kitura-net","kitura-nio","linux","macos","server-side-swift","swift","swiftnio"],"created_at":"2024-08-04T00:01:10.364Z","updated_at":"2025-05-13T09:31:23.177Z","avatar_url":"https://github.com/Kitura.png","language":"Swift","funding_links":[],"categories":["Platform"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"http://kitura.io/\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/Kitura/Kitura/master/Sources/Kitura/resources/kitura-bird.svg?sanitize=true\" height=\"100\" alt=\"Kitura\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Swift-5.0-orange.svg?style=flat\" alt=\"Swift 5.0\"\u003e\n\u003ca href=\"https://ibm-swift.github.io/Kitura-NIO/index.html\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/apidoc-KituraNIO-1FBCE4.svg?style=flat\" alt=\"APIDoc\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://travis-ci.org/Kitura/Kitura-NIO\"\u003e\n\u003cimg src=\"https://travis-ci.org/Kitura/Kitura-NIO.svg?branch=master\" alt=\"Build Status - Master\"\u003e\n\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/os-macOS-green.svg?style=flat\" alt=\"macOS\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/os-linux-green.svg?style=flat\" alt=\"Linux\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/license-Apache2-blue.svg?style=flat\" alt=\"Apache 2\"\u003e\n\u003ca href=\"http://swift-at-ibm-slack.mybluemix.net/\"\u003e\n\u003cimg src=\"http://swift-at-ibm-slack.mybluemix.net/badge.svg\" alt=\"Slack Status\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n# Kitura-NIO\n\nKitura-NIO is a [SwiftNIO](https://github.com/apple/swift-nio) based networking library for Kitura. Kitura-NIO adopts the same API as [KituraNet](https://github.com/Kitura/Kitura-net), making the transition from KituraNet to Kitura-NIO seamless. While Kitura-NIO shares some code with Kitura-Net, the core comprising of HTTPServer, ClientRequest/ClientResponse and TLS support have been implemented using SwiftNIO. Kitura-NIO uses [NIOSSL](https://github.com/apple/swift-nio-ssl) for TLS support.\n\nWe expect most of our users to require higher level concepts such as routing, templates and middleware. These are not provided in Kitura-NIO. If you want to use those facilities you should be coding at the Kitura level, for this please see the [Kitura](https://github.com/Kitura/Kitura) project. Kitura-NIO, like  [Kitura-net](https://github.com/Kitura/Kitura-net), underpins Kitura which offers a higher abstraction level to users.\n\nKitura-NIO 2 has been tested with Swift 5. If you are using Swift 4, please use Kitura-NIO 1. See the [release history](https://github.com/Kitura/Kitura-NIO/releases) for details.\n\n## Features\n\n- Port Listening\n- HTTP Server support (request and response)\n- Basic HTTP client support\n\n## Using Kitura-NIO\n\nWith Kitura 2.5 and future releases, to run on top of Kitura-NIO (instead of Kitura-Net) all you need to do is set an environment variable called `KITURA_NIO` before building your Kitura application:\n\n```shell\n    export KITURA_NIO=1 \u0026\u0026 swift build\n```\n\nIf you have already built your Kitura application using Kitura-Net and want to switch to using `KITURA_NIO`, you need to update the package before building:\n\n```shell\n    export KITURA_NIO=1 \u0026\u0026 swift package update \u0026\u0026 swift build\n```\n\nUsing the environment variable we make sure that only one out of Kitura-NIO and Kitura-Net is linked into the final binary.\n\nPlease note that though Kitura-NIO has its own GitHub repository, the package name is `KituraNet`. This is because the Kitura-NIO and Kitura-Net are expected to provide identical APIs, and it makes sense if they share the package name too.\n\n\n## Getting Started\n\nVisit [www.kitura.io](http://www.kitura.io/) for reference documentation.\n\n## Contributing to Kitura-NIO\n\nWe'd be more than happy to receive bug reports, enhancement requests and pull requests!\n\n1. Clone this repository.\n\n`$ git clone https://github.com/Kitura/Kitura-NIO \u0026\u0026 cd Kitura-NIO`\n\n2. Build and run tests.\n\n`$ swift test`\n\nYou may also want to run the tests in parallel:\n`$ swift test --parallel`\n\nIn some Linux environments, a low open file limit could cause test failures. See [this](https://github.com/Kitura/Kitura-NIO/issues/1).\n\n## Community\n\nWe'd really love to hear feedback from you.\n\nJoin the [Kitura on Swift Forums](https://forums.swift.org/c/related-projects/kitura) or our [Slack](http://swift-at-ibm-slack.mybluemix.net/) to meet the team!\n\n## License\n\nThis library is licensed under Apache 2.0. The full license text is available in [LICENSE](https://github.com/Kitura/Kitura-NIO/blob/master/LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKitura%2FKitura-NIO","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKitura%2FKitura-NIO","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKitura%2FKitura-NIO/lists"}