Ftr: add feature for unix socket capability (#86)

* feat(dubbo): add unix feature

* Rft: replace feature with target_os cfg
diff --git a/dubbo/src/framework.rs b/dubbo/src/framework.rs
index da21ab8..412ff36 100644
--- a/dubbo/src/framework.rs
+++ b/dubbo/src/framework.rs
@@ -53,7 +53,7 @@
     }
 
     pub fn init(&mut self) {
-        let conf = self.config.get_or_insert_with(|| get_global_config());
+        let conf = self.config.get_or_insert_with(get_global_config);
         tracing::debug!("global conf: {:?}", conf);
 
         for (name, url) in conf.registries.iter() {
diff --git a/dubbo/src/triple/transport/connector/mod.rs b/dubbo/src/triple/transport/connector/mod.rs
index 89ae555..82b9281 100644
--- a/dubbo/src/triple/transport/connector/mod.rs
+++ b/dubbo/src/triple/transport/connector/mod.rs
@@ -16,6 +16,7 @@
  */
 
 pub mod http_connector;
+#[cfg(target_os = "unix")]
 pub mod unix_connector;
 
 use hyper::Uri;
@@ -78,6 +79,7 @@
             let c = http_connector::HttpConnector::new();
             BoxCloneService::new(Connector::new(c))
         }
+        #[cfg(target_os = "unix")]
         "unix" => {
             let c = unix_connector::UnixConnector::new();
             BoxCloneService::new(Connector::new(c))
diff --git a/dubbo/src/triple/transport/listener/mod.rs b/dubbo/src/triple/transport/listener/mod.rs
index d755cd3..6beb215 100644
--- a/dubbo/src/triple/transport/listener/mod.rs
+++ b/dubbo/src/triple/transport/listener/mod.rs
@@ -16,6 +16,7 @@
  */
 
 pub mod tcp_listener;
+#[cfg(target_os = "unix")]
 pub mod unix_listener;
 
 use std::net::SocketAddr;
@@ -25,7 +26,6 @@
 
 use super::io::BoxIO;
 pub use tcp_listener::TcpListener;
-pub use unix_listener::UnixListener;
 
 #[async_trait]
 pub trait Listener: Send + Sync {
@@ -64,7 +64,8 @@
 pub async fn get_listener(name: String, addr: SocketAddr) -> Result<BoxListener, crate::Error> {
     match name.as_str() {
         "tcp" => Ok(TcpListener::bind(addr).await?.boxed()),
-        "unix" => Ok(UnixListener::bind(addr).await?.boxed()),
+        #[cfg(target_os = "unix")]
+        "unix" => Ok(unix_listener::UnixListener::bind(addr).await?.boxed()),
         _ => {
             tracing::warn!("no support listener: {:?}", name);
             Err(Box::new(crate::status::DubboError::new(format!(