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.ioTags | swift coroutines synchronous-apis server-side-swift zewo swiftenv concurrency xcode heroku swiftpm slack buildpack non-blocking fibers green-threads |
Implementation | Swift |
License | MIT |
Platform |
Venice provides structured concurrency and CSP for Swift.Venice wraps a fork of the C library libdill.
coroutines venice server-side-swift server csp swift swiftpm structured-concurrency green-threads fibers performance synchronous non-blockingLightning 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.
libdispatch tcp nodejs frp edge reactivecocoa nonblocking single-thread thread-safe non-blocking non-blocking-sockets functional-reactive-programming swift4 asynchronous-events asynchronous swift-package-manager lightningAmp 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.
async coroutines promises event-loop amphpThis 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.
perfect server vapor-swift vapor-example awesome-vapor server-side-swift tutorial swift-crawler vaporReflection 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.
swift reflection introspection mirroring swiftpm runtime dynamic server server-side-swift iosSlackKit 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.
slack server-side-swift chatbots slackkitZIO 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.
concurrency asynchronicity functional-programming queues streams promises stm asynchronous concurrent concurrent-programming asynchronous-programming concurrent-data-structureAt 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.
tcp sockets vapor server-side-swift async non-blocking swift-linuxNginx-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 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.
cpp scheduler coroutines concurrency tasks multithreading concurrent-programming asynchronous-programming threading await async-await task-scheduler thread-safety timers executor-service coroutine threadpool cpp20 executorsThis 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.
A non-blocking Swift web server, inspired by Express & Node.js
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.
vapor swift server-side-swift web-framework server frameworkThe 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.
swoole coroutine microservice framework psr-7 psr-14 psr-16 aop annotation-framework rpcApacheDS 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.
ldap identity-management directory-serverSwiftNIO 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.
swift4 asynchronous-io networking event-driven high-performance non-blocking-io non-blockingmessage-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.
events tcp sockets asynchronous network websocket udp actor-model tcp-server message-queue transport event-driven udp-server multicast network-programming non-blocking event-manager event-driven-architecture actor-system message-drivenPerfect 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.
swift server-side-swift web-application-framework swift-framework swift-perfect-community perfectFibers, 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.
fiber fibers coroutine thread async parallel worker future promiseThis 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.