Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 5ea37d3

Browse files
committed
LEP-006: external module repository
1 parent 6ae4ced commit 5ea37d3

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
| Title | External module repository |
2+
|--------|----------------------------|
3+
| Author | @CurlyMoo |
4+
| Status | Draft |
5+
| Date | 31-12-2017 |
6+
7+
Proposal
8+
========
9+
For my own software `pilight` I have developed various modules that I use on top of libuv. The reason for me to develop this stuff myself and not use existing libraries, is that I can use a single libuv loop for all functionality I need. Using external libraries require additional threads, additional non-blocking io loops etc. The downside of this, is that my code is not as complete as some existing libraries, and the code is probably of less quality. Despite all of this, what I have written so far is:
10+
11+
- NTP synchronisation (IPv6 supported)
12+
- HTTP post and get (IPv6 and SSL supported)
13+
- SSDP server and client
14+
- MAIL sent through smtp (IPv6 and SSL supported)
15+
- Webserver with websockets (SSL supported)
16+
- Eventpool based on the observer pattern.
17+
- ARP discovery.
18+
- ICMP.
19+
20+
The SSL library used is mbedtls.
21+
22+
All code has been written in pure C and is mostly modular. The biggest downside is that all code uses my eventpool for handling SSL connections. I therefor also use the pure `uv_poll_t` functionality a lot to keep close to socket programming.
23+
24+
However, that of course doesn't mean that things cannot be improved further with the help of others.
25+
26+
So, my proposal is to create a repository that hosts all kinds external components built on top of libuv. Other developers can then help maintain the code and ensure its functionality and quality. By having these modules stored close to libuv, other developers can more easily find existing implementations on top of libuv, and make use of it.

0 commit comments

Comments
 (0)