libco
co
libco | co | |
---|---|---|
4 | 1 | |
119 | 15 | |
0.8% | - | |
3.5 | - | |
about 1 year ago | over 3 years ago | |
C | C | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
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.
libco
- Show HN: Neco – Coroutine Library for C
-
Cycle Accurate Multithreaded Console Emulator Architecture
Higan's coroutines library libco is low-overhead cooperative multi-tasking that avoids OS context switches. As it says in the readme:
-
A Game Boy Color Emulator, Rust, and a COVID fever dream
Don't know about other systems, but bsnes/higan is probably the most widely known SNES emulator that operates at the cycle level. It uses libco to implement green threads. More details here, but afaik the basic idea is to emulate one subsystem for as long as possible until it touches another subsystem (like the CPU reading a register of the PPU), and at that point the other subsystem catches up.
-
Any C Asynchronous libraries I can translate to?
Not sure exactly what you're looking for/what you mean by 'asynchronous/coroutine', but you probably want either libco or libuv (or both?)
co
-
Show HN: Neco – Coroutine Library for C
Yeah, at some point, would just say if you want stackful coroutine, go to Go and stackless one, use C++.
BTW, here is my macros for stackless coroutine in C: https://github.com/liuliu/co/blob/master/example.c
What are some alternatives?
libfiber - The high performance c/c++ coroutine/fiber library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iouring/iocp/windows GUI
libco - libco is a coroutine library which is widely used in wechat back-end service. It has been running on tens of thousands of machines since 2013.
libuv - Cross-platform asynchronous I/O
libaco - A blazing fast and lightweight C asymmetric coroutine library 💎 ⛅🚀⛅🌞
libfiber - A demonstration thread library for Linux
neco - Concurrency library for C (coroutines)
libfiber - A User Space Threading Library Supporting Multi-Core Systems
portable_coroutines - portable coroutine library for C++
gb-emulator