{"id":20766,"date":"2018-03-01T14:08:50","date_gmt":"2018-03-01T19:08:50","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=20766"},"modified":"2019-12-19T14:46:59","modified_gmt":"2019-12-19T19:46:59","slug":"swiftnio","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2018\/03\/01\/swiftnio\/","title":{"rendered":"SwiftNIO"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/apple\/swift-nio\">SwiftNIO<\/a>:<\/p>\n<blockquote cite=\"https:\/\/github.com\/apple\/swift-nio\">\n<p>SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers &amp; clients.<\/p>\n<p>It&rsquo;s like <a href=\"https:\/\/netty.io\">Netty<\/a>, but written for Swift.<\/p>\n<\/blockquote>\n\n<p>Update (2018-03-02): <a href=\"https:\/\/twitter.com\/AirspeedSwift\/status\/969293434149154816\">Ben<\/a> <a href=\"https:\/\/twitter.com\/AirspeedSwift\/status\/969294162863378432\">Cohen<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/AirspeedSwift\/status\/969293434149154816\">\n<p>Two strengths of Swift that worked really well for SwiftNIO:<\/p>\n<p>- tight, deterministic memory management<\/p>\n<p>- easy transition between C\/Unsafe and higher-level APIs<\/p>\n<\/blockquote>\n<blockquote cite=\"https:\/\/twitter.com\/AirspeedSwift\/status\/969294162863378432\">\n<p>There are still some places in the code that are a little bit, uh, Java-y. PRs welcome!<\/p>\n<\/blockquote>\n\n<p>Update (2018-03-05): <a href=\"https:\/\/twitter.com\/codevapor\/status\/970012673852178432\">Vapor<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/codevapor\/status\/970012673852178432\">\n<p>We have branches of Vapor and Fluent 3.0 built on #swiftnio successfully running and passing tests. Integration went very smoothly with few breaking changes.  With close to 15k LOC deleted so far, we think this is definitely the right choice going forward and we&rsquo;re excited!<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>SwiftNIO: SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers &amp; clients. It&rsquo;s like Netty, but written for Swift. Update (2018-03-02): Ben Cohen: Two strengths of Swift that worked really well for SwiftNIO: - tight, deterministic memory management - easy transition between C\/Unsafe and higher-level APIs [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-12-19T19:34:05Z","apple_news_api_id":"a9d79cac-188e-44b6-b270-1079ec6b8f30","apple_news_api_modified_at":"2019-12-19T19:34:05Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AqdecrBiORLaycBB57GuPMA","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[31,448,30,476,74,71,901,1901],"class_list":["post-20766","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-ios","tag-linux","tag-mac","tag-networking","tag-opensource","tag-programming","tag-swift-programming-language","tag-swiftnio"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/20766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=20766"}],"version-history":[{"count":3,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/20766\/revisions"}],"predecessor-version":[{"id":20788,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/20766\/revisions\/20788"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=20766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=20766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=20766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}