#unix-domain-socket #networking-sockets #unix-socket #sockets #address

socket-address

A simple implementation of a socket address that can be either a network socket or a Unix domain socket

3 releases (breaking)

0.3.0 Oct 1, 2024
0.2.0 Nov 5, 2023
0.1.0 Jul 26, 2023

#14 in #networking-sockets

Download history 83/week @ 2024-11-30 131/week @ 2024-12-07 5/week @ 2024-12-14 17/week @ 2024-12-21 40/week @ 2024-12-28 89/week @ 2025-01-04 27/week @ 2025-01-11 48/week @ 2025-01-18 84/week @ 2025-01-25 60/week @ 2025-02-01 59/week @ 2025-02-08 161/week @ 2025-02-15 61/week @ 2025-02-22 236/week @ 2025-03-01 58/week @ 2025-03-08 45/week @ 2025-03-15

467 downloads per month

MIT license

6KB
81 lines

ListenAddress

use core::str::FromStr;
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

use socket_address::ListenAddress;

let addr = ListenAddress::from_str("0.0.0.0:80").unwrap();
assert_eq!(addr, ListenAddress::Network(SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 80)));
use core::str::FromStr;
use std::path::PathBuf;

use socket_address::ListenAddress;

let addr = ListenAddress::from_str("unix:myapp.sock").unwrap();
assert_eq!(addr, ListenAddress::UnixSocket("myapp.sock".into()));

ConnectAddress

use core::str::FromStr;
use http::Uri;

use socket_address::ConnectAddress;

let addr = ConnectAddress::from_str("http://127.0.0.1/").unwrap();
assert_eq!(addr, ConnectAddress::Uri(Uri::from_str("http://127.0.0.1/").unwrap()));
use core::str::FromStr;
use std::path::PathBuf;

use socket_address::ConnectAddress;

let addr = ConnectAddress::from_str("unix:myapp.sock").unwrap();
assert_eq!(addr, ConnectAddress::UnixSocket("myapp.sock".into()));

Dependencies

~0.8–1.3MB
~27K SLoC