Skip to content

Minimalistic multithreaded asynchronous core implementation based on boost::asio::io_service

License

Notifications You must be signed in to change notification settings

DmitryKuk/async_core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DmitryKuk / async_core

Minimalistic multithreaded asynchronous core implementation based on boost::asio::io_context


What is this?

async_core is small project containing several parts (which can be used separately). You can just include header files from include/ directory and link some Boost libraries to your application.

What is it for?

  • For example, you write application with asyncronous core, but you don't want manage your io_contexts manually.
  • Another example: you want to use stackful coroutines in your application, but boost::asio::spawn uses deprecated Boost.Coroutine.
  • Or, maybe, you know about asyncio from Python and want something like asyncio_loop.run_until_complete(my_coro()) or want to use std::future-like access to coroutines result.

Components

Requirements

  • Compiler with C++14 support. For example, try g++ of versions 5/6/... or modern clang.
    • Tested: clang++ --version: Apple LLVM version 8.0.0 (clang-800.0.42.1) on Mac OS X 10.11
    • Tested: g++-mp-6 --version: g++-mp-6 (MacPorts gcc6 6.4.0_0) 6.4.0 on Mac OS X 10.11
  • Boost (or just some Boost libs) (>= 1.66.0 because of Boost.Asio refactoring since 1.65)
    • Tested: Boost 1.66.0 on Mac OS X 10.11
  • Boost.Build (or any other build system -- it's simple), if you want to build exemples and run tests.
    • Note: Set environment variable BOOST_ROOT to unpacked Boost directory.

License

MIT license. See license.txt.

What next?

  • See detailed description in *.hpp files.
  • Check examples in example/ directory and unit-tests in test/ directory.
  • Build all examples and run tests with Boost.Build (in this project you can use b2 from your Boost installation).
  • Check build/bin/ directory.
  • Star or fork the repository, open issues and have a nice day!

Author: Dmitry Kukovinets, [email protected], 24.12.2017 01:54

About

Minimalistic multithreaded asynchronous core implementation based on boost::asio::io_service

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages