SeaStar is an event-driven framework allowing you to write non-blocking, asynchronous code in a relatively straightforward manner (once understood). It is based on futures.
There are also instructions for building on any host that supports Docker.
Seastar can be built with the C++17 dialect by supporting compilers, conditional
--c++-dialect option being set to
However, by default Seastar uses C++14-compatible types such as
boost::variant, both internally and in its public
API, thus forcing them on C++17 projects. To fix this, Seastar provides the
option, which changes those types to their
stdlib incarnation, and allows
seemless use of C++17. Usage of this option requires an updated compiler, such
as GCC 8.1.1-5 on Fedora.
The documentation is available on the web.
Information can be found on the main project website.
File bug reports on the project issue tracker.
The Native TCP/IP Stack
Seastar comes with its own userspace TCP/IP stack for better performance.
Recommended hardware configuration for SeaStar
- CPUs - As much as you need. SeaStar is highly friendly for multi-core and NUMA
- NICs - As fast as possible, we recommend 10G or 40G cards. It's possible to use 1G too but you may be limited by their capacity. In addition, the more hardware queue per cpu the better for SeaStar. Otherwise we have to emulate that in software.
- Disks - Fast SSDs with high number of IOPS.
- Client machines - Usually a single client machine can't load our servers. Both memaslap (memcached) and WRK (httpd) cannot over load their matching server counter parts. We recommend running the client on different machine than the servers and use several of them.