capture-thread - Framework for loggers, tracers, and mockers in multithreaded C++ programs.

  •        13

Framework for loggers, tracers, and mockers in multithreaded C++ programs.When developing C++ projects, instrumentation is frequently used to collect information from the system, inject information into the system, or both. The role of this information within the system rarely lines up with the actual structure of the project.



Related Projects

SQL Server Admin Scripts Pack

Collection of T-SQL (mostly) scripts with centralized logging and emailing allowing quick configuration of backup, free space control, operations with files, custom log shipping, audit, lock tracing. Plus other useful utilities and libraries found around in the web.

readerwriterqueue - A fast single-producer, single-consumer lock-free queue for C++

This mini-repository has my very own implementation of a lock-free queue (that I designed from scratch) for C++. It only supports a two-thread use case (one consuming, and one producing). The threads can't switch roles, though you could use this queue completely from a single thread if you wish (but that would sort of defeat the purpose!).

log4r - Log4r is a comprehensive and flexible logging library for use in Ruby programs

Log4r is a comprehensive and flexible logging library written in Ruby for use in Ruby programs. It features a hierarchical logging system of any number of levels, custom level names, logger inheritance, multiple output destinations per log event, execution tracing, custom formatting, thread safteyness, XML and YAML configuration, and more. Log4r works really well, so please take advantage of it right away! :) All versions since 0.9.2 have been stable and backward-compatible. The code is stable enough that updates are infrequent and usually only for adding features or keeping the code up to date with Ruby.

ADBI - Android Dynamic Binary Instrumentation tool for tracing Android native layer

Android Dynamic Binary Instrumentation tool for tracing Android native layer


Free and completely open source keystroke logging (keylogger) application, allows you to capture and record all keyboard input to a log file. Program is extremely small and lightweight, can run in a hidden mode, or upload log file to specified web server.

zipkin-go-opentracing - OpenTracing Tracer implementation for Zipkin in Go

OpenTracing Tracer implementation for Zipkin in Go.This package is a low level tracing "driver" to allow OpenTracing API consumers to use Zipkin as their tracing backend. For details on how to work with spans and traces we suggest looking at the documentation and README from the OpenTracing API.

Essential Diagnostics

Using and extending System.Diagnostics trace logging. This project uses the inbuilt features of the System.Diagnostics namespace, and shows how logging and tracing can be integrated into a client application whilst taking advantage of the services exposed by System.Diagnostics.

MSDK - Multithreading SDK

Multithreading SDK: cross-platform synchronization primitives, thread support, and multithreading applications. All delivered as C++ classes. Supports Win32 (natively and MSVCRT) and Linux (Pthread).

brave - Java distributed tracing implementation compatible with Zipkin backend services.

Java implementation of Dapper ( compatible with Zipkin (

Micrometer - An application metrics facade for the most popular monitoring tools

An application metrics facade for the most popular monitoring tools. Instrument your code with dimensional metrics with a vendor neutral interface and decide on the monitoring backend at the last minute. Micrometer is the instrumentation library underpinning Spring Boot 2.0's metrics collection.

screenshot-tests-for-android - screenshot-test-for-android is a library that can generate fast deterministic screenshots while running instrumentation tests in android

screenshot-tests-for-android is a library that can generate fast deterministic screenshots while running instrumentation tests in android.We mimic Android's measure(), layout() and draw() to generate screenshots on the test thread. By not having to do the rendering on a separate thread we have control over animations and handler callbacks which makes the screenshots extremely deterministic and reliable for catching regressions in continuous integration.

node-continuation-local-storage - implementation of

Continuation-local storage works like thread-local storage in threaded programming, but is based on chains of Node-style callbacks instead of threads. The standard Node convention of functions calling functions is very similar to something called "continuation-passing style" in functional programming, and the name comes from the way this module allows you to set and get values that are scoped to the lifetime of these chains of function calls. When you set values in continuation-local storage, those values are accessible until all functions called from the original function – synchronously or asynchronously – have finished executing. This includes callbacks passed to process.nextTick and the timer functions (setImmediate, setTimeout, and setInterval), as well as callbacks passed to asynchronous functions that call native functions (such as those exported from the fs, dns, zlib and crypto modules).

Agrona - Library to build high-performance applications in Java and C++

Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java and C++. It supports Buffers, Map, Sets, Cache, Queues and lot more.

JCTools - Java Concurrency Tools for the JVM

Java Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK.

Do Work in Background Thread to Keep GUI Responsive

Demonstrate simple example of using BackgroundWorker class to do work on a background thread and then update the GUI in a thread-safe manner.

puma - A Ruby/Rack web server built for concurrency

Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications in development and production. Under the hood, Puma processes requests using a C-optimized Ragel extension (inherited from Mongrel) that provides fast, accurate HTTP 1.1 protocol parsing in a portable way. Puma then serves the request in a thread from an internal thread pool. Since each request is served in a separate thread, truly concurrent Ruby implementations (JRuby, Rubinius) will use all available CPU cores.

python-hunter - Hunter is a flexible code tracing toolkit.

Hunter is a flexible code tracing toolkit, not for measuring coverage, but for debugging, logging, inspection and other nefarious purposes. It has a Python API, terminal activation (see Environment variable activation). and supports tracing other processes (see Tracing processes).

screen-capture-recorder-to-video-windows-free - a free open source windows "screen capture" device and recorder (also allows VLC/ffmpeg and others to capture/stream desktop/audio)

It includes some helper "record your screen capture/stream it" and setup utilities. It also includes a helper (virtual-audio-capturer) to record "what you hear/see on your desktop" for vista+ system. It also includes a free, general purpose, open source directshow desktop/screen source capture filter.

TraceMyNet: a network tracing tool

TraceMyNet is a network tracing tool. It acts as a TCP socket proxy and allows you visualize network traffic, including local traffic that tools like netmon can't capture. It has support for SLL encrypted connections as well.


GNU Prolog API for distributed multithreading programming built on top of the PM2 environment. The thread management is made with a user-level multithreading library and communication is made on top of Madeleine, the communication subsystem of PM2.