[package] name = "io-lifetimes" version = "1.0.11" description = "A low-level I/O ownership and borrowing library" authors = ["Dan Gohman "] license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" keywords = ["api", "io"] categories = ["os", "rust-patterns"] edition = "2018" repository = "https://github.com/sunfishcode/io-lifetimes" include = ["src", "build.rs", "Cargo.toml", "COPYRIGHT", "LICENSE*", "/*.md"] [dependencies] # io-lifetimes only depends on libc/windows-sys for the ability to close # and duplicate fds/handles/sockets. The following are just optional # dependencies to add foreign-type impls for the traits. In the future, # we'll prefer to have crates provide their own impls; this is just a # temporary measure. # Optionally depend on fs_err to implement traits for its types for now. fs-err = { version = "2.6.0", optional = true } [target.'cfg(not(target_os = "wasi"))'.dependencies] # Optionally depend on os_pipe to implement traits for its types for now. os_pipe = { version = "1.0.0", features = ["io_safety"], optional = true } # The following dependencies allow io-lifetimes to define impls for various # third-party traits. This is only done in not(io_safety_is_in_std) mode, # because when we're using the std types and traits, we can't define impls # on third-party traits, due to the orphan rule. Work is ongoing to add # the needs impls upstream. # # These dependencies are currently disabled on WASI, because we need to # enable some features which don't work on WASI yet. So for now, WASI users # will need to wait until the impls are added upstream. # Optionally depend on async-std just to provide impls for its types. async-std = { version = "1.12.0", optional = true } # Optionally depend on tokio to implement traits for its types. tokio = { version = "1.6.0", features = ["io-std", "fs", "net", "process"], optional = true } # Optionally depend on socket2 to implement traits for its types. This uses # 0.4 because 0.5 has an MSRV of 1.63, which is the version where io-lifetimes # switches to using the types and traits from std ("io_safety_is_in_std"), # and disables the third-party impls. socket2 = { version = "0.4.0", optional = true } # Optionally depend on mio to implement traits for its types. mio = { version = "0.8.0", features = ["net", "os-ext"], optional = true } [target.'cfg(target_os = "hermit")'.dependencies] hermit-abi = { version = "0.3", optional = true } [target.'cfg(not(windows))'.dependencies] libc = { version = "0.2.96", optional = true } [target.'cfg(windows)'.dependencies.windows-sys] version = "0.48.0" optional = true features = [ "Win32_Foundation", "Win32_Storage_FileSystem", "Win32_Networking_WinSock", "Win32_Security", "Win32_System_IO", "Win32_System_Threading", ] [features] default = ["close"] close = ["libc", "hermit-abi", "windows-sys"]