libaco
libco
libaco | libco | |
---|---|---|
3 | 4 | |
3,437 | 119 | |
- | 0.8% | |
10.0 | 3.5 | |
almost 2 years ago | 12 months ago | |
C | C | |
Apache License 2.0 | 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.
libaco
- Show HN: Neco – Coroutine Library for C
- Splitting the stack - is there a library for this?
-
What are the current hot topics in type theory and static analysis?
Coroutines, async/await and general multicore support in the type system. Most languages by now either have some variant of async / await (JavaScript, Kotlin, Swift, Rust) or super-lightweight threads (Go, Elixir, Java via Project Loom), or they just have Monads which supersede coroutines entirely (Haskell, Scala). It's at the point where some say a language isn't suitable for production if it doesn't have good multicore support (also see Rust speeding through getting async/await even though they already have Send + Sync). Even Python and C++ have coroutines now, and of course there is a coroutine library for C which uses macros and low-level magic.
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?)
What are some alternatives?
val - A small library to bring NaNboxing to C
libfiber - The high performance c/c++ coroutine/fiber library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iouring/iocp/windows GUI
coroutine - A asymmetric coroutine library for C.
libuv - Cross-platform asynchronous I/O
Akka - Build highly concurrent, distributed, and resilient message-driven applications on the JVM
libfiber - A demonstration thread library for Linux
rfcs - RFC process for Bytecode Alliance projects
libfiber - A User Space Threading Library Supporting Multi-Core Systems
fully-homomorphic-encryption - An FHE compiler for C++
portable_coroutines - portable coroutine library for C++
eff - 🚧 a work in progress effect system for Haskell 🚧
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.