Noze.io TodoMVC is a simple Todo-Backend example implementation.
It uses the Noze.io Connect and Redis modules.
The example is coming with two backends: a simple in-memory store as well as a Redis backend which persists the todos as Redis hashes and uses Redis INCR to maintain a primary key sequence.
Check it out! It actually works :-)
You can just checkout the repository and build via Swift Package Manager
git clone https://github.com/NozeIO/noze-todomvc.git
cd noze-todomvc
swift build # or just `make`
If you have Redis installed locally, you can then run the example via
helge@ZeaPro noze-todomvc (develop)*$ .build/debug/todo-mvc
Server listening: <Server: #http=0 *.*.*.*:1337 fd=4 backlog=5>
INFO: Connected to Redis <RedisClient: Connected 7 idle>
and connect to it via http://todobackend.com/client/index.html?http://localhost:1337/.
Also included is a Docker configuration which starts Redis and everything required. To run:
docker-compose up
and again, connect to it via http://todobackend.com/client/index.html?http://localhost:1337/.
Just connect via: http://todobackend.com/specs/index.html?http://localhost:1337/.
Noze.io is an attempt to carry over the Node.js ideas into pure Swift. Noze.io is built around type-safe back-pressure aware pull-streams (using Swift generics) operating on batches of items. Instead of just operating on bytes, operate on batches of Unicode lines or database records or HTML responses or - you get the idea. Be efficient: Stream everything and ßatch.
Noze.io is brought to you by The Always Right Institute and ZeeZide. We wouldn't be sad if more people would like to join the effort :-)