<commit_before>Fiberized.IO
============

Fiberized.IO is a fast and simple framework without compromises.

* <B>Fast</B><BR/>Asynchronous I/O under the hood for maximum speed and throughtput.
* <B>Simple</B><BR/>Fiber based programming model for concise and intuitive development.
* <B>No compromises</B><BR/>Standard C++ thread and iostream compatible API, old-fashion programs just work more efficiently.

The echo server example
-----------------------
<pre><code>
#include &lt;iostream&gt;
#include &lt;fibio/fiber.hpp&gt;
#include &lt;fibio/stream/iostream.hpp&gt;

using namespace fibio;

int main_fiber(int argc, char *argv[]) {
    auto acc=io::listen(atoi(argv[1]));
    while(1) {
        fiber([](tcp_stream s){
            while(!s.eof()) {
                std::string line;
                std::getline(s, line);
                s &lt;&lt; line &lt;&lt; std::endl;
            }
        }, io::accept(acc)).detach();
    }
    return 0;
}

int main(int argc, char *argv[]) {<commit_msg>half and full duplex mode<commit_after>Fiberized.IO
============

Fiberized.IO is a fast and simple framework without compromises.

* <B>Fast</B><BR/>Asynchronous I/O under the hood for maximum speed and throughtput.
* <B>Simple</B><BR/>Fiber based programming model for concise and intuitive development.
* <B>No compromises</B><BR/>Standard C++ thread and iostream compatible API, old-fashion programs just work more efficiently.

The echo server example
-----------------------
<pre><code>
#include &lt;iostream&gt;
#include &lt;fibio/fiber.hpp&gt;
#include &lt;fibio/stream/iostream.hpp&gt;

using namespace fibio;

int main_fiber(int argc, char *argv[]) {
    auto acc=io::listen(atoi(argv[1]));
    while(1) {
        fiber([](tcp_stream s){
            s &lt;&lt; stream::half_duplex &lt;&lt; s.rdbuf();
        }, io::accept(acc)).detach();
    }
    return 0;
}

int main(int argc, char *argv[]) {
{'fraction_non_alphanumeric': 0.17733473242392445, 'fraction_numerical': 0.0031479538300104933, 'mean_word_length': 3.334090909090909, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '550171', 'n_tokens_mistral': 624, 'n_tokens_neox': 610, 'n_words': 169}