cpp-ipc
pe-util
cpp-ipc | pe-util | |
---|---|---|
1 | 1 | |
1,621 | 54 | |
- | - | |
5.7 | 1.4 | |
7 days ago | 12 months ago | |
C++ | C++ | |
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.
cpp-ipc
-
What are the "best practices" or "better design patterns" for posting message from one thread to others?
I'm working on a complex c++ project for my company these days. First, I need to pass 5 different types of messages (and attached data) from Process A to Process B. I use cpp-ipc and it works fine. And in Process B, there is one thread (called thread b) which is responsible for receiving those messages and "posting" them to other threads. I can't determine (and of course, don't know) the good solutions. My current idea is to use 5 concurrent queues for the 5 types of message. When thread b receives a message, it pushes the message to a queue, and other threads take the message from the queue. pseudocode example:
pe-util
-
Cross Compiling Rust GTK Projects for Windows
FROM fedora:latest # # Set up system # WORKDIR /root RUN dnf -y update RUN dnf clean all RUN dnf install -y git cmake file gcc make man sudo tar RUN dnf install -y gcc-c++ boost boost-devel # # Build peldd to find dlls of exes # RUN git clone https://github.com/gsauthof/pe-util WORKDIR pe-util RUN git submodule update --init RUN mkdir build WORKDIR build RUN cmake .. -DCMAKE_BUILD_TYPE=Release RUN make RUN mv /root/pe-util/build/peldd /usr/bin/peldd RUN chmod +x /usr/bin/peldd # # Add package.sh # ADD package.sh /usr/bin/package.sh RUN chmod +x /usr/bin/package.sh # # Install Windows libraries # RUN dnf install -y mingw64-gcc RUN dnf install -y mingw64-freetype RUN dnf install -y mingw64-cairo RUN dnf install -y mingw64-harfbuzz RUN dnf install -y mingw64-pango RUN dnf install -y mingw64-poppler RUN dnf install -y mingw64-gtk3 RUN dnf install -y mingw64-winpthreads-static RUN dnf install -y mingw64-glib2-static # # Install rust # RUN useradd -ms /bin/bash rustacean USER rustacean RUN curl https://sh.rustup.rs -sSf | sh -s -- -y RUN /home/rustacean/.cargo/bin/rustup update # # Set up rust for cross compiling # RUN /home/rustacean/.cargo/bin/rustup target add x86_64-pc-windows-gnu ADD cargo.config /home/rustacean/.cargo/config ENV PKG_CONFIG_ALLOW_CROSS=1 ENV PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig/ ENV GTK_INSTALL_PATH=/usr/x86_64-w64-mingw32/sys-root/mingw/ # # Setup the mount point # VOLUME /home/rustacean/src WORKDIR /home/rustacean/src # # Build and package executable # CMD ["/usr/bin/package.sh"]
What are some alternatives?
Osiris - Free and open-source game hack for Counter-Strike 2, written in modern C++. For Windows and Linux.
shadesmar - Fast C++ IPC using shared memory
polybar-dwm-module - A dwm module for polybar
XPEViewer - PE file viewer/editor for Windows, Linux and MacOS.
iceoryx - Eclipse iceoryxâ„¢ - true zero-copy inter-process-communication
filesystem - An implementation of C++17 std::filesystem for C++11 /C++14/C++17/C++20 on Windows, macOS, Linux and FreeBSD.
v6d - vineyard (v6d): an in-memory immutable data manager. (Project under CNCF, TAG-Storage)
rust-crosscompile - docker for cross compiling rust gtk programs to windows
ultimatepp - U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).
Pepper - PE32 (x86) and PE32+ (x64) binaries analysis tool, resources viewer/extractor.