dce 1.0.0

Just examples for dce libs
use std::io::Write;
use chrono::Local;
use env_logger::Builder;
use log::LevelFilter;
use dce_cli::protocol::CliProtocol;
use dce_router::router::Router;
use crate::apis::cli::{hello, index, session};
use crate::apis::clients::append;
use crate::apis::http::http_start;
use crate::apis::session::http_start_session;
#[cfg(feature = "connection-session")]
use crate::apis::session_ws::websocket_start_session;
use crate::apis::tcp::tcp_start;
use crate::apis::udp::udp_start;
use crate::apis::websocket::websocket_start;

mod apis {
    pub mod cli;
    pub mod clients;
    pub mod session;
    #[cfg(feature = "connection-session")]
    pub mod session_ws;
    pub mod http;
    pub mod websocket;
    pub mod tcp;
    pub mod udp;
}

#[tokio::main]
async fn main() {
    Builder::new()
        .format(|buf, record| {
            writeln!(buf,
                     "{} [{}] - {}",
                     Local::now().format("%Y-%m-%dT%H:%M:%S"),
                     record.level(),
                     record.args()
            )
        })
        .filter(None, LevelFilter::Info)
        .parse_default_env()
        .init();

    #[allow(unused_mut)]
    let mut router = Router::new().unwrap()
        .push(index)
        .push(hello)
        .push(session)
        .push(http_start_session)
        .push(http_start)
        .push(websocket_start)
        .push(tcp_start)
        .push(udp_start)
        .consumer_push(append);
    
    #[cfg(feature = "connection-session")]
    { router = router.push(websocket_start_session); }
    let router = router.ready().unwrap();

    CliProtocol::new(1).route(router.clone(), Default::default()).await;
}