Index: rtnetlink/examples/add_address.rs
===================================================================
--- rtnetlink.orig/examples/add_address.rs
+++ rtnetlink/examples/add_address.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use std::env;
Index: rtnetlink/examples/add_neighbour.rs
===================================================================
--- rtnetlink.orig/examples/add_neighbour.rs
+++ rtnetlink/examples/add_neighbour.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/examples/add_route.rs
===================================================================
--- rtnetlink.orig/examples/add_route.rs
+++ rtnetlink/examples/add_route.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use std::env;
 
Index: rtnetlink/examples/add_route_pref_src.rs
===================================================================
--- rtnetlink.orig/examples/add_route_pref_src.rs
+++ rtnetlink/examples/add_route_pref_src.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::TryStreamExt;
 use std::{env, net::Ipv4Addr};
Index: rtnetlink/examples/add_rule.rs
===================================================================
--- rtnetlink.orig/examples/add_rule.rs
+++ rtnetlink/examples/add_rule.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use std::env;
 
Index: rtnetlink/examples/add_tc_qdisc_ingress.rs
===================================================================
--- rtnetlink.orig/examples/add_tc_qdisc_ingress.rs
+++ rtnetlink/examples/add_tc_qdisc_ingress.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use std::env;
 
Index: rtnetlink/examples/create_bridge.rs
===================================================================
--- rtnetlink.orig/examples/create_bridge.rs
+++ rtnetlink/examples/create_bridge.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use rtnetlink::new_connection;
 
Index: rtnetlink/examples/create_macvlan.rs
===================================================================
--- rtnetlink.orig/examples/create_macvlan.rs
+++ rtnetlink/examples/create_macvlan.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use macaddr::MacAddr;
Index: rtnetlink/examples/create_veth.rs
===================================================================
--- rtnetlink.orig/examples/create_veth.rs
+++ rtnetlink/examples/create_veth.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use rtnetlink::new_connection;
 
Index: rtnetlink/examples/create_vxlan.rs
===================================================================
--- rtnetlink.orig/examples/create_vxlan.rs
+++ rtnetlink/examples/create_vxlan.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/examples/del_link.rs
===================================================================
--- rtnetlink.orig/examples/del_link.rs
+++ rtnetlink/examples/del_link.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/examples/flush_addresses.rs
===================================================================
--- rtnetlink.orig/examples/flush_addresses.rs
+++ rtnetlink/examples/flush_addresses.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/examples/get_address.rs
===================================================================
--- rtnetlink.orig/examples/get_address.rs
+++ rtnetlink/examples/get_address.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/examples/get_links.rs
===================================================================
--- rtnetlink.orig/examples/get_links.rs
+++ rtnetlink/examples/get_links.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use netlink_packet_route::{
Index: rtnetlink/examples/get_neighbours.rs
===================================================================
--- rtnetlink.orig/examples/get_neighbours.rs
+++ rtnetlink/examples/get_neighbours.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle, IpVersion};
Index: rtnetlink/examples/get_route.rs
===================================================================
--- rtnetlink.orig/examples/get_route.rs
+++ rtnetlink/examples/get_route.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle, IpVersion};
Index: rtnetlink/examples/get_rule.rs
===================================================================
--- rtnetlink.orig/examples/get_rule.rs
+++ rtnetlink/examples/get_rule.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle, IpVersion};
Index: rtnetlink/examples/ip_monitor.rs
===================================================================
--- rtnetlink.orig/examples/ip_monitor.rs
+++ rtnetlink/examples/ip_monitor.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::StreamExt;
 
Index: rtnetlink/examples/listen.rs
===================================================================
--- rtnetlink.orig/examples/listen.rs
+++ rtnetlink/examples/listen.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 //! This example opens a netlink socket, registers for IPv4 and IPv6 routing
 //! changes, listens for said changes and prints the received messages.
Index: rtnetlink/examples/property_altname.rs
===================================================================
--- rtnetlink.orig/examples/property_altname.rs
+++ rtnetlink/examples/property_altname.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use netlink_packet_route::link::{LinkAttribute, LinkMessage, Prop};
Index: rtnetlink/examples/set_link_down.rs
===================================================================
--- rtnetlink.orig/examples/set_link_down.rs
+++ rtnetlink/examples/set_link_down.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/src/link/test.rs
===================================================================
--- rtnetlink.orig/src/link/test.rs
+++ rtnetlink/src/link/test.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use netlink_packet_route::link::{
Index: rtnetlink/src/traffic_control/add_filter.rs
===================================================================
--- rtnetlink.orig/src/traffic_control/add_filter.rs
+++ rtnetlink/src/traffic_control/add_filter.rs
@@ -172,6 +172,7 @@ impl TrafficFilterNewRequest {
     }
 }
 
+#[cfg(feature = "tokio_socket")]
 #[cfg(test)]
 mod test {
     use std::{fs::File, os::fd::AsFd, path::Path};
Index: rtnetlink/src/traffic_control/test.rs
===================================================================
--- rtnetlink.orig/src/traffic_control/test.rs
+++ rtnetlink/src/traffic_control/test.rs
@@ -10,10 +10,13 @@ use netlink_packet_route::{
 };
 use tokio::runtime::Runtime;
 
-use crate::{new_connection, Error::NetlinkError};
+#[cfg(feature = "tokio_socket")]
+use crate::new_connection;
+use crate::Error::NetlinkError;
 
 static TEST_DUMMY_NIC: &str = "netlink-test";
 
+#[cfg(feature = "tokio_socket")]
 async fn _get_qdiscs() -> Vec<TcMessage> {
     let (connection, handle, _) = new_connection().unwrap();
     tokio::spawn(connection);
@@ -25,6 +28,7 @@ async fn _get_qdiscs() -> Vec<TcMessage>
     qdiscs
 }
 
+#[cfg(feature = "tokio_socket")]
 #[test]
 fn test_get_qdiscs() {
     let qdiscs = Runtime::new().unwrap().block_on(_get_qdiscs());
@@ -44,6 +48,7 @@ fn test_get_qdiscs() {
     );
 }
 
+#[cfg(feature = "tokio_socket")]
 async fn _get_tclasses(ifindex: i32) -> Vec<TcMessage> {
     let (connection, handle, _) = new_connection().unwrap();
     tokio::spawn(connection);
@@ -212,6 +217,7 @@ fn _remove_test_filter_from_dummy() {
         });
 }
 
+#[cfg(feature = "tokio_socket")]
 async fn _get_filters(ifindex: i32) -> Vec<TcMessage> {
     let (connection, handle, _) = new_connection().unwrap();
     tokio::spawn(connection);
@@ -223,6 +229,7 @@ async fn _get_filters(ifindex: i32) -> V
     filters
 }
 
+#[cfg(feature = "tokio_socket")]
 async fn _get_chains(ifindex: i32) -> Vec<TcMessage> {
     let (connection, handle, _) = new_connection().unwrap();
     tokio::spawn(connection);
@@ -257,6 +264,7 @@ async fn _get_chains(ifindex: i32) -> Ve
 // of create random named veth/dummy for test, just place class, filter, and
 // chain query test in one test case is much simpler.
 #[test]
+#[cfg(feature = "tokio_socket")]
 #[cfg_attr(not(feature = "test_as_root"), ignore)]
 fn test_get_traffic_classes_filters_and_chains() {
     let ifindex = _add_test_dummy_interface();
Index: rtnetlink/src/traffic_control/add_qdisc.rs
===================================================================
--- rtnetlink.orig/src/traffic_control/add_qdisc.rs
+++ rtnetlink/src/traffic_control/add_qdisc.rs
@@ -73,6 +73,7 @@ impl QDiscNewRequest {
     }
 }
 
+#[cfg(feature = "tokio_socket")]
 #[cfg(test)]
 mod test {
     use std::{fs::File, os::fd::AsFd, path::Path};
Index: rtnetlink/examples/get_links_thread_builder.rs
===================================================================
--- rtnetlink.orig/examples/get_links_thread_builder.rs
+++ rtnetlink/examples/get_links_thread_builder.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use netlink_packet_route::{
Index: rtnetlink/examples/create_bond.rs
===================================================================
--- rtnetlink.orig/examples/create_bond.rs
+++ rtnetlink/examples/create_bond.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use rtnetlink::new_connection;
 use std::net::{Ipv4Addr, Ipv6Addr};
Index: rtnetlink/examples/create_macvtap.rs
===================================================================
--- rtnetlink.orig/examples/create_macvtap.rs
+++ rtnetlink/examples/create_macvtap.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/examples/create_vlan.rs
===================================================================
--- rtnetlink.orig/examples/create_vlan.rs
+++ rtnetlink/examples/create_vlan.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use std::{env, error::Error as StdError, str::FromStr};
 
Index: rtnetlink/examples/get_bond_port_settings.rs
===================================================================
--- rtnetlink.orig/examples/get_bond_port_settings.rs
+++ rtnetlink/examples/get_bond_port_settings.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
Index: rtnetlink/examples/get_links_async.rs
===================================================================
--- rtnetlink.orig/examples/get_links_async.rs
+++ rtnetlink/examples/get_links_async.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use netlink_packet_route::{
Index: rtnetlink/examples/set_bond_port_settings.rs
===================================================================
--- rtnetlink.orig/examples/set_bond_port_settings.rs
+++ rtnetlink/examples/set_bond_port_settings.rs
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+#![cfg(feature = "tokio_socket")]
 
 use futures::stream::TryStreamExt;
 use rtnetlink::{new_connection, Error, Handle};
