I have some open source projects released to Github.
- C++ Thread Pool
- This project includes a collection of thread related C++ classes, such as thread pool implementation, mutex, etc., by having everything declared and defined in the thread.h file. As a result, there is no library to be linked. The application simply includes the thread.h file and be done with it.
- K-means
- This project implements k-means algorithm in C++. It also comes with a demo program using FLTK for animation.
- Kafka Proxy
- Kafka Proxy provides a way for the Kafka consumers belonged to the same consumer group to be able to scale beyond the total numbers of partitions for a single topic. By design, the total numbers of the Kafka consumers belonged to the same consumer group cannot be larger than the total numbers of partitions for a single topic. Kafka Proxy solves this issue by acting as a single consumer to consume the Kafka messages from a single topic on the consumers' behalf, and providing a set of RESTful APIs to the consumers to consume the messages from the proxy. To eliminate the chances of processing the same messages, the consumers need to explicitly send acks to the proxy to indicate that they have finished processing those messages via the RESTful APIs. The order of the messages is not guaranteed even from the same partition.
- Naive Bayes Classifier
- This project implements the Naive Bayes Classifier in C++. It utilizes the Thread Pool for multi-processing during training and testing.
- Muniq
- This is a multi-threaded version of GNU uniq in C++. Only a subset of options are supported currently, and with a couple of extensions.