V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
1iveHO0k

用 rust 写了小半个 reactor 模式的 socket 库, 有感兴趣的小伙伴吗?

  •  
  •   1iveHO0k ·
    archerfeel · Jan 10, 2018 · 3891 views
    This topic created in 3039 days ago, the information mentioned may be changed or developed.

    刚学 rust, 很多特性和语法都不熟, 求大佬带.

    Iryna: A lightweight network library based on mio

    echo server demo:

    use std;
    use channel::*;
    use acceptor::*;
    
    #[test]
    fn it_works() {
        Acceptor::new()
            .worker_count(4)
            .bind("127.0.0.1", 9098)
            .opt_nodelay(true)
            .opt_send_buf_size(4096)
            .opt_recv_buf_size(4096)
            .on_receive(|ref mut ch| {
                let s: String = ch.read_test();
                ch.write(s.as_bytes());
            })
            .on_ready(|ref mut ch| {
                ch.write("Welcome.\n".as_bytes());
            })
            .accept();
        std::thread::sleep_ms(100000);
    }
    
    2 replies    2018-01-10 23:31:20 +08:00
    noli
        1
    noli  
       Jan 10, 2018
    reactor 模式?
    我第一次看 C++ 上的 ACE 这种库的时候就觉得什么 reactor proactor 等等的字眼没前途,
    不是一个深思熟虑和足够抽象(并且恰当地抽象)的概念。

    或许我是错的,但比起 promise, future 等等常见的异步 pattern,reactor 模式有什么好处?
    1iveHO0k
        2
    1iveHO0k  
    OP
       Jan 10, 2018
    @noli 额.. 这是不同维度的概念吧, reactor/proactor 是 IO 模型的实现; promise 和 future 这个一种异步方式吧? 我也说不太准确, 但这确实不是一个维度的概念, 写一个 reactor 模式的库也能做成 future 形式.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   923 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 21:40 · PVG 05:40 · LAX 14:40 · JFK 17:40
    ♥ Do have faith in what you're doing.