libevent
ck
Our great sponsors
libevent | ck | |
---|---|---|
12 | 7 | |
10,648 | 2,283 | |
1.1% | 1.1% | |
8.7 | 6.6 | |
7 days ago | 7 days ago | |
C | C | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libevent
- Epoll: The API that powers the modern internet (2022)
- Concurrency Model in JavaScript Runtime Environments
-
Understand the underlying Javascript - event loop
They're different. Node uses libuv while chromium uses libevent. You're also seeing different APIs for working with the event loop like nextTick() in Node that doesn't exist in browsers.
-
Tmux install script I made to install the latest stable version
Unknown OS, continue trying to install? Menu? Develope this area! Querying Versions on https://libevent.org... Please be patient.
- Looking for low footprint c++ library to build a REST client
- Io_uring is not an event system
-
Packaging your Crystal app into a Flatpak
app-id: dev.geopjr.Hashbrown runtime: org.gnome.Platform runtime-version: "3.38" sdk: org.gnome.Sdk command: hashbrown finish-args: - --socket=wayland - --socket=fallback-x11 - --share=ipc cleanup: - /include - /lib/pkgconfig - /share/doc - /share/man - "*.a" - "*.la" modules: - name: libevent sources: - type: git url: https://github.com/libevent/libevent.git tag: release-2.1.12-stable - name: hashbrown buildsystem: simple build-commands: - $(pwd)/crystal/bin/crystal build ./src/hashbrown.cr --no-debug --release - install -D -m 0755 hashbrown /app/bin/hashbrown - install -D -m 0644 extra/Hashbrown.desktop /app/share/applications/dev.geopjr.Hashbrown.desktop - install -D -m 0644 extra/icons/logo.svg /app/share/icons/hicolor/scalable/apps/dev.geopjr.Hashbrown.svg - install -D -m 0644 extra/icons/symbolic.svg /app/share/icons/hicolor/symbolic/apps/dev.geopjr.Hashbrown-symbolic.svg post-install: - install -D -m 0644 extra/dev.geopjr.Hashbrown.metainfo.xml /app/share/metainfo/dev.geopjr.Hashbrown.metainfo.xml sources: - type: git url: https://github.com/GeopJr/Hashbrown.git tag: v1.2.0 commit: 02ecf5cc5aacc32fc484fd9e348d2b1220168295 - type: archive dest: crystal/ url: https://github.com/crystal-lang/crystal/releases/download/1.0.0/crystal-1.0.0-1-linux-x86_64.tar.gz sha256: 00211ca77758e99210ec40b8c5517b086d2ff9909e089400f6d847a95e5689a4 - type: git url: https://github.com/jhass/crystal-gobject.git commit: 6468c57f8aa54b71c766d27b1e59e87a09ee8552 dest: lib/gobject - type: git url: https://github.com/elorest/compiled_license.git tag: v0.1.3 commit: f287c2c8c95579688fa5620df954d8cc1272cbbf dest: lib/compiled_license
-
C Deep
libevent - Event loop replacement for network servers. BSD-3-Clause
ck
-
Libdill: Structured Concurrency for C (2016)
There are plenty of practical solutions to the safe memory reclamation problem in C. The language just doesn't force one on you.
From epoch-based reclamation (https://github.com/concurrencykit/ck/blob/master/include/ck_..., especially with the multiplexing extension to Fraser's classic scheme), to quiescence schemes (https://liburcu.org/), or hazard pointers (https://github.com/facebook/folly/blob/master/folly/synchron..., or https://pvk.ca/Blog/2020/07/07/flatter-wait-free-hazard-poin...)... or even simple using a type-stable (https://www.usenix.org/legacy/publications/library/proceedin...) memory allocator.
In my experience, it's easier to write code that is resilient to hiccups in C than in Java. Solving SMR with GC only offers something close to lock-freedom when you can guarantee global GC pauses are short enough... and common techniques to bound pauses, like explicitly managed freelists land you back in the same problem space as C.
-
C Deep
ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. BSD-2-Clause
-
Super-expressive – Write regex in natural language
Indeed they do, https://github.com/concurrencykit/ck
What are some alternatives?
libuv - Cross-platform asynchronous I/O
Boost.Asio - Asio C++ Library
libev - Full-featured high-performance event loop loosely modelled after libevent
liburing
C++ Actor Framework - An Open Source Implementation of the Actor Model in C++
uvw - Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!
asyncio - asyncio is a c++20 library to write concurrent code using the async/await syntax.
Dasynq - Thread-safe cross-platform event loop library in C++
libcds - A C++ library of Concurrent Data Structures
libdill - Structured concurrency in C
lev - Lightweight C++ wrapper for LibEvent 2 API
moodycamel - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11