libev VS microjob

Compare libev vs microjob and see what are their differences.

libev

Full-featured high-performance event loop loosely modelled after libevent (by enki)

microjob

A tiny wrapper for turning Node.js worker threads into easy-to-use routines for heavy CPU loads. (by wilk)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
libev microjob
4 2
1,540 2,018
- -
0.0 0.0
over 3 years ago over 1 year ago
C TypeScript
BSD-2-Clause MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

libev

Posts with mentions or reviews of libev. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-12.
  • Polyphony: Fine-Grained Concurrency for Ruby
    3 projects | news.ycombinator.com | 12 May 2023
    Thank you for this.

    I am interested in how concurrency can be represented elegantly and efficiently, so I am interested in how libraries can simplify async and make it easier to reason about and write

    The libev and ioring support is great for IO scalability (https://github.com/enki/libev not sure if this is the official repo)

    In Python I use the "select" module and use epoll on Linux.

    I am currently thinking of designing an API that allows the registration of epoll-like listeners to arbitrary objects, including business objects, so you can efficiently register a listener on multiple behaviours of multiple arbitrary objects.

    I wrote an async/await simulation in Java and my scheduler is really simple, it's just a for loop that checks to see if there are any tasks that can progress. I notice the switch_fiber in polyphony must do something similar. This is similar to a yield in a coroutine.

    My async/await simulation takes the following program:

      task1:
  • Ship it!
    2 projects | /r/badcode | 24 Mar 2022
  • C in Web Dev
    5 projects | /r/C_Programming | 4 Dec 2021
    Also, libev
  • Ideas, thoughts, and notes on an action based polymorphism pattern for C
    2 projects | /r/C_Programming | 3 Jun 2021
    It's done even now. See ev.h where they do this. Just that you disable GCC's aliasing warning. There's a reason why restrict and aliasing became important to deal with. It wasn't standards that killed it.

microjob

Posts with mentions or reviews of microjob. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-24.
  • Ship it!
    2 projects | /r/badcode | 24 Mar 2022
    node.js is multithreaded under the hood and always has been. It's true that we used to not have multi thread capability as developers, but we actually have for several years now, but most developers have probably never used it. Even prior to Worker Threads/Shared Buffers, we had 3rd party modules such as node-fiber and various shared memory data structure libraries which could be used to build multi threaded javascript programs. https://github.com/wilk/microjob <- dead simple batteries included multi threading in node.js
  • Should all functions be async?
    1 project | /r/node | 25 Jan 2021
    Real life example: We wanted our website to be static files to save on system time as a kind of caching strategy. So far there are about 100 pages that need to be rendered sometimes when there is an update to the site. Running all of this through our templating engine at once caused the node server to be unresponsive for about 30 to 40 seconds. No joy. There are a few ways to solve this but the one we decided on was to use web worker threads for this execution because this was not going to happen very often. About 5% to 10% of the time. It basically just puts this function (rendering all of the pages) into another thread and returns the result. Now this takes about 15 to 20 seconds and does not hold up the main thread. We used a library called Microjob that makes using a web worker really easy https://github.com/wilk/microjob

What are some alternatives?

When comparing libev and microjob you can also consider the following projects:

libuv - Cross-platform asynchronous I/O

threads.js - 🧵 Make web workers & worker threads as simple as a function call.

libevent - Event notification library

threadedClass - Fork instances of classes with one line of code, all while retaining the types of the class.

Boost.Asio - Asio C++ Library

Joplin - Joplin - the secure note taking and to-do app with synchronisation capabilities for Windows, macOS, Linux, Android and iOS.

C++ Actor Framework - An Open Source Implementation of the Actor Model in C++

jobber - 💼 Super simple API to fetch job listings from popular job boards (Ashby, Greenhouse, Lever, etc.)

asyncio - asyncio is a c++20 library to write concurrent code using the async/await syntax.

react-native-multithreading - 🧵 Fast and easy multithreading for React Native using JSI

uvw - Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!

Dasynq - Thread-safe cross-platform event loop library in C++