tolc
PhotonLibOS
tolc | PhotonLibOS | |
---|---|---|
9 | 6 | |
37 | 795 | |
- | 2.9% | |
0.0 | 9.4 | |
almost 2 years ago | 3 days ago | |
CMake | C++ | |
GNU General Public License v3.0 or later | Apache License 2.0 |
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.
tolc
-
CLI11 is making all the other options libraries look bad, does anyone have a comparison from experience?
I love CLI11! It has been pretty easy all the way through. Used to use lyra before but since I wanted to have subgroups in Tolc I had to switch. Great job on CLI11 if the author is in the chat :)
- Show HN: A Bindings Compiler for C++
- C++ Show and Tell - July 2022
-
Finding the right order to define objects
I'm working on a project called Tolc that is generating bindings from C++ to other languages. When creating bindings to a class MyClass, it needs to be defined before any code using that class (for example a function that returns an instance of it). Therefore I needed to know in which order to define things. Honestly I just had so much fun solving this problem (using some C++20 and features) that I wrote a post so sum it all up:
-
A C++ Bindings Compiler
Hi everyone!
Some friends and I were unhappy with how much work it was to use C++ from other languages. We were working in the optimizations industry and often had to prototype with python. Eventually, we created a tool to make it easier for C++ to talk to python (by generating pybind11). Later, javascript via WebAssembly was added as well. It's now at a point where it's very easy to just create a C++ library and use it from any of those languages without change. We're planning on slowly adding more languages as needed/requested. The next on the list are Swift and Kotlin.
It does not require any change to your existing public interface, but simply reads it and creates the bindings off of that. It should also work on Linux (Debian), MacOS, and Windows (Visual Studio). Here's a small demo if you'd like to test:
https://github.com/Tolc-Software/tolc-demo
And here are the repositories with the source code:
https://github.com/Tolc-Software/tolc - The executable
https://github.com/Tolc-Software/frontend.py - The python bindings generator
https://github.com/Tolc-Software/frontend.wasm - The WebAssembly bindings generator
https://github.com/Tolc-Software/Parser - The C++ parser
It is dual licensed with AGPL and, if someone wants, a commercial license as well.
Would be cool if someone finds it useful!
- An easier way to use C++ from other languages
-
A bindings compiler for C++
https://github.com/Tolc-Software/tolc - The executable and CMake wrappers
-
I cried at that moment.
I’m just gonna drop this here: https://github.com/Tolc-Software/tolc
PhotonLibOS
-
Coroutine made DPDK dev easy
So, we try to use Photon coroutine lib to simplify the development of DPDK applications with the new concurrency model, and provide more functionalities, such as lock, timer and file I/O. First of all, we need to choose a userspace network protocol stack. After investigation, we have chosen Tencent's open source F-Stack project, which has ported the entire FreeBSD 11.0 network protocol stack on top of DPDK. It also has made some code cuts, providing a set of POSIX APIs, such as socket, epoll, kqueue, etc. Of course, its epoll is also simulated by kqueue, since it is essentially FreeBSD.
-
200 lines of code to rewrite the 600'000 lines RocksDB into a coroutine programx
Finally, the PhotonLibOS project is open sourced at https://github.com/alibaba/PhotonLibOS. If you are interested in C++ coroutines and high-performance IO, welcome to have a try.
- A performance review of io_uring vs. epoll for standard/streamed socket traffic
-
C++ Show and Tell - September 2022
Photon (https://github.com/alibaba/PhotonLibOS) is a coroutine lib, and it just released v0.3.
- C++ Show and Tell - July 2022
-
I was thinking of submitting a proposal to make std::coroutine_handle<void> convertible to void (*)() and was looking for feedback.
the fastest coroutine library by the year of 2022, https://github.com/alibaba/PhotonLibOS
What are some alternatives?
AnyAny - C++17 library for comfortable and efficient dynamic polymorphism
libfiber - The high performance c/c++ coroutine/fiber library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iouring/iocp/windows GUI
kelcoro - C++20 coroutine library
concurrencpp - Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all
diskwrite - An alternative to the Linux `dd`, written in C.
libgo - Go-style concurrency in C++11
Reduct Storage - A time series database for storing and managing large amounts of blob data [Moved to: https://github.com/reductstore/reductstore]
coost - A tiny boost library in C++11.
SAFD-algorithm - An app to compute the coefficients of a function development in a spherical harmonics convergent series.
f-stack - F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
Lyra - A simple to use, composable, command line parser for C++ 11 and beyond
DiscordCoreAPI - A bot library for Discord, written in C++, and featuring explicit multithreading through the usage of custom, asynchronous C++ CoRoutines.