Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Flow - Modern C++ toolkit for async loops, logs, config, benchmarking, and more [See also `ipc` repo]

License

NotificationsYou must be signed in to change notification settings

Flow-IPC/flow

Repository files navigation

C++ power users, these days, are likely to use the standard library (a/k/a STL), Boost, and/or any number ofthird-party libraries. Nevertheless every large project or organization tends to need more reusable goodies,whether to add to STL/Boost/etc. or in some cases do something better, perhaps in a specialized way.

Flow is such a library (provided as both headers and an actual library). It's written in modern C++ (C++ 17as of this writing) and is meant to be generally usable as opposed to particularly specialized.(One exception to this is the included, but wholly optional, NetFlow protocol, contained inflow::net_flownamespace. While still reusable in a general way, interest in this functionality is likely niche.)

We refrain from delving into any particulars as to what's in Flow, aside from the following brief list ofits top-level modules. The documentation (see Documentation below) covers all of its contents in great detail.So, that said, Flow includes (alphabetically ordered):

  • flow::async: Single-threaded and multi-threaded event loops, augmenting boost.asio so as to actually createboost.asio-powered threads and thread pools, schedule timers more easily, and other niceties.
  • flow::cfg: Key-value configuration file parsing, augmenting a boost.program_options core with a large number ofquality-of life additions including support for high-speed dynamically updated configurationstructs.
  • flow::error: A few niceties around the ubiquitous boost.system (now adopted by STL also) error-reportingsystem. It also adds a simple convention for reporting errors, used across Flow, wherein each error-reportingAPI handles reporting results via error code return or exception (whichever the caller prefers at the call-site).
  • flow::log: A powerful and performant logging system. While it can actually output to console and files,if so configured, its loggers will also easily integrate with your own log system of choice.
  • flow::perf: Benchmarking with multiple clock types and checkpoint-based accounting (if desired).
  • flow::util: General goodies. Highlights:Blob (efficient and controlledvector<uint8_t> replacement withoptional sharing and mem-pools),Linked_hash_{map|set} (hashed-lookup containers that maintain MRU-LRU iteratorordering as opposed to being unordered as inunordered_{map|set}),String_ostream (a sped-upostringstreamreplacement leveraging boost.iostreams internally) plusostream_op_string() function.

Documentation

A comprehensive Referenceis available.

Theproject web site contains links to documentation for each individual release as well.

Obtaining the source code

  • As a tarball/zip: Theproject web site links to individual releases with notes, docs,download links.
  • Via Git:git clone git@github.com:Flow-IPC/flow.git

Installation

SeeINSTALL guide.

Contributing

SeeCONTRIBUTING guide.


[8]ページ先頭

©2009-2025 Movatter.jp