You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
Libmodule is a C library targeting linux aiming to let developers easily create modular C projects in a way which is both simple and elegant.
9
9
You will write less code, focusing on what really matters.
10
10
11
-
**Please note that the library actually builds and works on macOS and BSD too.** See [Portability](https://github.com/FedeDP/libmodule#is-it-portable).
11
+
**Please note that libmodule actually builds and works on macOS and BSD too, and probably other.** See [Portability](https://github.com/FedeDP/libmodule#is-it-portable).
12
12
13
13
## Is this an event loop or an actor lib?
14
14
@@ -20,13 +20,15 @@ Indeed, libmodule was heavily inspired by my own actor library experience with [
20
20
## Is it portable?
21
21
22
22
Yes, it is. Non-portable code is actually [compile-time-plugins](https://github.com/FedeDP/libmodule/tree/master/Lib/poll_plugins) based.
23
-
On linux, libmodule's internal loop will use epoll, while on BSD and MacOS kqueue will be used.
24
-
The downside is that any poll plugin must have epoll-like interface. This is a choice: I find epoll-like APIs to be much more powerful and enjoyable to use.
23
+
On linux, libmodule's internal loop will use epoll, while on BSD and MacOS it will use kqueue.
24
+
On other OS, cmake will fallback at looking for [libkqueue](https://github.com/mheily/libkqueue), a drop-in replacement for kqueue.
25
+
Unfortunately, I am not able to test builds on other OS, and I could only check that libmodule can be built on Linux through libkqueue.
26
+
If you wish to have libmodule working on your OS, please open an issue or (better) send a PR.
25
27
Finally, it heavily relies upon gcc attributes that may or may not be available for your compiler.
26
-
Builds on supported platforms are tested through [travis](https://github.com/FedeDP/libmodule#travis-ci).
28
+
Linux and osx builds are tested through [travis](https://github.com/FedeDP/libmodule#travis-ci).
27
29
28
30
As I can only test on linux with epoll though, you are advised that other plugins may break or have weird bugs.
29
-
*If anyone is interested in step up and test libmodule on non-linux platforms, I'd be very thankful*.
31
+
*If anyone is interested in step up and test/maintain libmodule on non-linux platforms, I'd be very thankful*.
30
32
31
33
## Is there any documentation?
32
34
@@ -55,7 +57,6 @@ So I thought that writing a library to achieve those same abstractions in a clea
55
57
## Build dep and how to build
56
58
57
59
You only need cmake to build libmodule; it does not depend upon external software.
58
-
Libmodule includes an [hashmap](https://github.com/petewarden/c_hashmap) implementation provided by Pete Warden (thank you!).
0 commit comments