finds.dev← search

// the find

sogou/workflow

★ 14,378 · C++ · Apache-2.0 · updated Jun 2026

C++ Parallel Computing and Asynchronous Networking Framework

Sogou's internal C++ async networking and parallel computing framework, open-sourced and battle-tested at 10B+ requests/day across their search backend. It unifies network I/O, file I/O, CPU computation, and DAG orchestration under a single task abstraction — you can mix an HTTP request, a sort algorithm, and a disk read into one workflow without juggling thread pools manually. Aimed at C++ backend developers who need high-throughput services without Boost.Asio or similar dependencies.

The task lifecycle model is genuinely well-thought-out: tasks are created by factory, run, callback, then auto-reclaim — no shared_ptr gymnastics, no leak surface. The built-in protocol coverage (HTTP, Redis, MySQL, Kafka, DNS, Consul) means you can build a service mesh client without pulling in five separate libraries. DAG support is real, not bolted on — graph tasks compose with series/parallel tasks naturally. Available in apt/dnf package repos, which is a meaningful signal that Sogou is treating this as a maintained artifact rather than a code dump.

The API is callback-heavy by design and the learning curve is steep — the abstraction is elegant once you internalize it, but there's no coroutine or async/await surface, so you're writing C++11-era callback chains in a C++20 world. Windows support lives on a separate branch with IOCP, which means you're effectively maintaining two codebases if you care about cross-platform parity. Documentation is bilingual but the Chinese docs are consistently more detailed and more current than the English translations. The Kafka implementation pulls in three compression libraries (lz4, zstd, snappy) as hard dependencies the moment you enable it — no optional flag, no build-time knob.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →