Zewo - Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines

  •        229

Zewo is a lightweight library for web applications in Swift.Zewo is not a web framework. Zewo is a lightweight library for web applications in Swift. Most server-side Swift projects use Grand Central Dispatch (GCD) as the concurrency library of choice. The drawback of using GCD is that its APIs are asynchronous. With async code comes callback hell and we all know it, it's no fun.

http://zewo.io
https://github.com/Zewo/Zewo

Tags
Implementation
License
Platform

   




Related Projects

Lightning - A Swift Multiplatform Single-threaded Non-blocking Web and Networking Framework

  •    Swift

Lightning is an HTTP Server and TCP Client/Server framework written in Swift and inspired by Node.js. It runs on both OS X and Linux. Like Node.js, Lightning uses an event-driven, non-blocking I/O model. In the same way that Node.js uses libuv to implement this model, Lightning uses libdispatch. This makes Lightning fast, efficient, and most crutially single-threaded by default. You simply do not need to worry about locks/mutexes/semaphores/etc if you have server-side state. Of course, Lightning applications can make use of libdispatch to easily offload heavy processing to a background thread if necessary.

amp - A non-blocking concurrency framework for PHP applications.

  •    PHP

Amp is a non-blocking concurrency framework for PHP. It provides an event loop, promises and streams as a base for asynchronous programming.Promises in combination with generators are used to build coroutines, which allow writing asynchronous code just like synchronous code, without any callbacks.

SwiftServerSide-Vapor - 🦄 Swift server open source projects based on the Swift 4

  •    Swift

This is a Swift Server Side open source project built on the Swift 4.1 and Vapor 3 frameworks. Because of apple’s release of the cool event-driven non-blocking network framework SwiftNIO, Vapor 3 introduced it at a blazing pace, leading to Vapor 2 and Vapor 3. The grammar is very different. For me personally, it looks like the difference between Swift 2 -> Swift 3 is awkward. So I used Vapor 3 to rewrite part of the interface and open it for reference and communication with interested partners. Currently listed in the document API has been deployed in a formal environment application, and will continue to be perfected as needed.

Reflection - Advanced Swift reflection including dynamic construction of types.

  •    Swift

Reflection provides an API for advanced reflection at runtime including dynamic construction of types.If you need any help you can join our Slack and go to the #help channel. Or you can create a Github issue in our main repository. When stating your issue be sure to add enough details, specify what module is causing the problem and reproduction steps.


SlackKit - Build Slack apps, in Swift

  •    Swift

SlackKit makes it easy to build Slack apps in Swift. It's intended to expose all of the functionality of Slack's Real Time Messaging API as well as the web APIs that are accessible to bot users. SlackKit also supports Slack’s OAuth 2.0 flow including the Add to Slack and Sign in with Slack buttons, incoming webhooks, slash commands, and message buttons.

Zio - A type-safe, composable library for async and concurrent programming in Scala

  •    Scala

ZIO is a zero-dependency Scala library for asynchronous and concurrent programming. It is powered by highly-scalable, non-blocking fibers that never waste or leak resources, ZIO lets you build scalable, resilient, and reactive applications that meet the needs of your business.

sockets - 🔌 Non-blocking TCP socket layer, with event-driven server and client.

  •    Swift

At the request of the original authors, we ask you to please help us make the community a better place by abiding to this Code of Conduct during your interactions surrounding this project.

nginx-buildpack - Run NGINX in front of your app server on Heroku

  •    Shell

Nginx-buildpack vendors NGINX inside a dyno and connects NGINX to an app server via UNIX domain sockets. Some application servers (e.g. Ruby's Unicorn) halt progress when dealing with network I/O. Heroku's Cedar routing stack buffers only the headers of inbound requests. (The Cedar router will buffer the headers and body of a response up to 1MB) Thus, the Heroku router engages the dyno during the entire body transfer –from the client to dyno. For applications servers with blocking I/O, the latency per request will be degraded by the content transfer. By using NGINX in front of the application server, we can eliminate a great deal of transfer time from the application server. In addition to making request body transfers more efficient, all other I/O should be improved since the application server need only communicate with a UNIX socket on localhost. Basically, for webservers that are not designed for efficient, non-blocking I/O, we will benefit from having NGINX to handle all I/O operations.

concurrencpp - Modern concurrency for C++

  •    C++

concurrencpp is a tasking library for C++ allowing developers to write highly concurrent applications easily and safely by using tasks, executors and coroutines. By using concurrencpp applications can break down big procedures that need to be processed asynchronously into smaller tasks that run concurrently and work in a co-operative manner to achieve the wanted result. concurrencpp also allows applications to write parallel algorithms easily by using parallel coroutines. concurrencpp is a task-centric library. A task is an asynchronous operation. Tasks offer a higher level of abstraction for concurrent code than traditional thread-centric approaches. Tasks can be chained together, meaning that tasks pass their asynchronous result from one to another, where the result of one task is used as if it were a parameter or an intermediate value of another ongoing task. Tasks allow applications to utilize available hardware resources better and scale much more than using raw threads, since tasks can be suspended, waiting for another task to produce a result, without blocking underlying OS-threads. Tasks bring much more productivity to developers by allowing them to focus more on business-logic and less on low-level concepts like thread management and inter-thread synchronization.

heroku-buildpack-swift - Heroku build pack for Swift

  •    Shell

This is a Heroku buildpack for Swift apps that are powered by the Swift Package Manager.Check out the Curassow-example-helloworld for a fully working example that can be deployed to Heroku.

blackfish - A non-blocking Swift web server, inspired by Express & Node.js

  •    Swift

A non-blocking Swift web server, inspired by Express & Node.js

vapor - A server-side Swift web framework.

  •    Swift

Vapor is the most used web framework for Swift. It provides a beautifully expressive and easy to use foundation for your next website, API, or cloud project.Join the welcoming community of fellow Vapor developers in slack.

swoft - ⚡️ Modern High performance AOP and Coroutine PHP Framework, base on Swoole

  •    PHP

The first high-performance PHP coroutine full-stack componentization framework based on Swoole native coroutine, built-in coroutine web server and commonly-used coroutine client, resident memory, which has no dependency on PHP-FPM, asynchronous non-blocking IO implementation, similar to synchronous client style of writing to achieve the use of asynchronous clients, without complex asynchronous callback, no tedious yield, similar Go language coroutines, flexible annotations framework, a powerful global dependency injection container base on annotations, and great service governance , flexible and powerful AOP, PSR specification implementation, etc., could be used to build high-performance Web systems, APIs, middleware, basic services, microservice and so on. Chinese Document English Document Not yet, please help us write it.

ApacheDS - Apache Directory Project

  •    Java

ApacheDS is an embeddable directory server entirely written in Java, which has been certified LDAPv3 compatible by the Open Group. Besides LDAP it supports Kerberos 5 and the Change Password Protocol. It has been designed to introduce triggers, stored procedures, queues and views to the world of LDAP which has lacked these rich constructs.

swift-nio - Event-driven network application framework for high performance protocol servers & clients, non-blocking

  •    Swift

SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. It's like Netty, but written for Swift.

message-io - Fast and easy-to-use event-driven network library.

  •    Rust

message-io is a fast and easy-to-use event-driven network library. The library handles the OS socket internally and offers a simple event message API to the user. It also allows you to make an adapter for your own transport protocol following some rules, delegating the tedious asynchrony and thread management to the library. Managing sockets is hard because you need to fight with threads, concurrency, full duplex, encoding, IO errors that come from the OS (which are really difficult to understand in some situations), etc. If you make use of non-blocking sockets, it adds a new layer of complexity: synchronize the events that come asynchronously from the Operating System.

Perfect - Server-side Swift

  •    Swift

Perfect is a complete and powerful toolbox, framework, and application server for Linux, iOS, and macOS (OS X). It provides everything a Swift engineer needs for developing lightweight, maintainable, and scalable apps and other REST services entirely in the Swift programming language for both client-facing and server-side applications.Perfect includes a suite of tools that will enhance your productivity as you use only one programming language to build your apps: Swift. The global development community’s most dynamic and popular server-side toolbox and framework available today, Perfect is the backbone for many live web applications and apps available on iTunes.

node-fibers - Fiber/coroutine support for v8 and node.

  •    C++

Fibers, sometimes called coroutines, are a powerful tool which expose an API to jump between multiple call stacks from within a single thread. This can be useful to make code written for a synchronous library play nicely in an asynchronous environment. Note: node-fibers uses node-gyp for building. To manually invoke the build process, you can use node-gyp rebuild. This will put the compiled extension in build/Release/fibers.node. However, when you do require('fibers'), it will expect the module to be in, for example, bin/linux-x64-v8-3.11/fibers.node. You can manually put the module here every time you build, or you can use the included build script. Either npm install or node build -f will do this for you. If you are going to be hacking on node-fibers, it may be worthwhile to first do node-gyp configure and then for subsequent rebuilds you can just do node-gyp build which will be faster than a full npm install or node-gyp rebuild.

swift-3-api-guidelines-review

  •    Swift

This repository is part of the Swift 3 API Design Guidelines effort, which helps evaluate the effects of applying the Swift API Design Guidelines to Objective-C APIs through improvements to Swift's Clang importer. swift-2: This branch provides the baseline Swift 2 projections of Objective-C APIs along with sample projects that compile in Swift 2. This branch will evolve only when the source inputs change, e.g., the addition of new sample code or updated SDKs when a new version of Xcode becomes available.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.