Skip to content

Commit 1e12807

Browse files
committed
update README
1 parent 04ea680 commit 1e12807

File tree

2 files changed

+38
-15
lines changed

2 files changed

+38
-15
lines changed

.github/workflows/linux.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: linux
2+
on:
3+
push:
4+
pull_request:
5+
branches: [ main ]
6+
7+
jobs:
8+
build:
9+
strategy:
10+
matrix:
11+
os: [ubuntu-latest]
12+
runs-on: ${{ matrix.os }}
13+
14+
steps:
15+
- uses: actions/checkout@v2
16+
- uses: goto-bus-stop/setup-zig@v2
17+
with:
18+
version: 0.13.0
19+
- name: Unit Test
20+
run: zig build test

README.md

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,46 @@
11
# zzz
22
![zzz logo](./docs/img/zzz.png)
33

4-
## Notice
5-
zzz is currently **alpha** software and while it is generally stable, there is still a lot changing at a fairly quick pace and certain places where things are less polished.
4+
Tracking Latest Zig Stable: `0.13.0`
65

7-
You should currently only use it if you are willing to work around the rough edges.
6+
`zig fetch --save https://github.com/mookums/zzz/archive/main.tar.gz`
87

98
## zzz?
10-
zzz is a framework for writing performant and reliable networked services in Zig.
9+
zzz is a framework for writing performant and reliable networked services in Zig. It currently only supports TCP as the underlying transport layer but allows for any arbitrary protocol to run on top.
1110

12-
zzz provides a solid core with support for providing your own protocol handlers and your own Async implementation.
11+
*zzz is currently **alpha** software and while it is generally stable, there is still a lot changing at a fairly quick pace and certain places where things are less polished.*
1312

14-
It focuses on modularity and portability, allowing you to swap in your own implementations for various things. This allows for use in standard servers as well as embedded/bare metal domains.
13+
It focuses on modularity and portability, allowing you to swap in your own implementations for various things. Consumers can provide both a protocol and an async implementation, allowing for maximum flexibility. This allows for use in standard servers as well as embedded/bare metal domains.
1514

1615
## Optimization
1716
zzz is **very** fast. Through a combination of methods, such as allocation at start up and avoiding thread contention, we are able to extract tons of performance.
1817

18+
zzz currently out performs both [http.zig](https://github.com/karlseguin/http.zig) and [zap](https://github.com/zigzap/zap), while being almost entirely written in Zig.
19+
1920
zzz can be configured to utilize minimal memory while remaining performant. The provided `minram` example only uses 392 kB!
2021

2122
## Features
22-
- Modular Asyncronous Implementation
23+
- [Modular Asyncronous Implementation](https://muki.gg/post/modular-async)
2324
- Allows for passing in your own Async implementation.
2425
- Comes with:
2526
- io_uring for Linux.
2627
- IOCP for Windows (planned).
2728
- kqueue for BSD (planned).
28-
- Modular Protocol Implementation
29+
- Modular Protocol Implementation [#](#supported-protocols)
2930
- Allows for defining your own Protocol on top of TCP.
30-
- Comes with:
31-
- HTTP/1.1
32-
- MQTT (planned)
33-
- HTTP/2 (planned)
31+
- Single and Multi-threaded Support
3432
- TLS using BearSSL
3533
- (Almost) all memory allocated at startup
3634
- Only allocations happen while storing received data for parsing.
3735

36+
## Supported Protocols
37+
- [HTTP/1.1](https://github.com/mookums/zzz/blob/main/src/http)
38+
- HTTP/2 (planned)
39+
- MQTT (planned)
40+
- Custom, you can write your own
3841

39-
## Platform Support
40-
zzz currently focuses on Linux as the primary platform.
4142

42-
Due to the modular nature, any platform (that works with Zig) can be supported as long as you define an Async backend.
43+
## Platform Support
44+
zzz currently focuses on Linux as the primary platform. Windows, MacOS, and BSD support is planned in the near future.
4345

46+
Due to the modular nature, any platform (that works with Zig) can be supported as long as you define an Async backend. This includes embedded and bare metal!

0 commit comments

Comments
 (0)