Skip to content

A header-only generic library with simple cross threaded channels for C++20.

License

Notifications You must be signed in to change notification settings

nwad123/narrows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Warning

This is very much a work in progress and is not ready for use quite yet.

Narrows

Narrows is a C++ channel library providing efficient and easy-to-use communication channels for concurrent programming. This library was a chance for me to learn more personally about cross thread channels, and you probably want to make sure you consider the tradeoffs I've made before using it for your project. Once I'm done with it, this README will give a good introduction to narrows, but for more information I'd suggest poking around the docs folder, as it has some writing on the history and design of narrows and can give you an idea of where the library came from.

Features

  • Bounded channel: A channel with a fixed capacity

    auto [s, r] = nrws::bounded<int>(10);
  • Unbounded channel: A channel with no upper bound on its capacity

    auto [s, r] = nrws::unbounded<int>();

Design Tradeoffs

  • Bounded channel
    • [Add tradeoffs here]
  • Unbounded channel
    • [Add tradeoffs here]

Installation

[Provide installation instructions here]

Usage

Bounded Channel

// Example code for using a bounded channel

Unbounded Channel

// Example code for using an unbounded channel

API Reference

[Provide a brief overview of key classes and functions]

Performance

[Include any performance metrics or comparisons]

Contributing

[Instructions for contributors]

License

[Specify the license]

Acknowledgements

About

A header-only generic library with simple cross threaded channels for C++20.

Resources

License

Stars

Watchers

Forks

Releases

No releases published