# palaver [![Crates.io](https://img.shields.io/crates/v/palaver.svg?maxAge=86400)](https://crates.io/crates/palaver) [![MIT / Apache 2.0 licensed](https://img.shields.io/crates/l/palaver.svg?maxAge=2592000)](#License) [![Build Status](https://dev.azure.com/alecmocatta/palaver/_apis/build/status/tests?branchName=master)](https://dev.azure.com/alecmocatta/palaver/_build) [Docs](https://docs.rs/palaver/0.3.0-alpha.3) Cross-platform polyfills. This library attempts to provide reliable polyfills for functionality that isn't implemented on all platforms. `palaver` = "Platform Abstraction Layer" + pa·lav·er *n.* prolonged and tedious fuss. ## Functionality
ThreadingDescriptionLinuxmacOSWindowsFreeBSDNetBSDiOSAndroid
gettid()Get thread ID
count()Number of threads in current process
FilesDescriptionLinuxmacOSWindowsFreeBSDNetBSDiOSAndroid
seal_fd()Make a file descriptor read-only
dup_fd()Duplicate a file descriptor
copy_fd()Copy a file descriptor to a specific offset
move_fd()Move a file descriptor to a specific offset
move_fds()Move file descriptors to specific offsets
fd_dir()Get a path to the file descriptor directory
fd_path()Get a path to a file descriptor
FdIterIterate all open file descriptors
memfd_create()Create an anonymous file
fexecve()Execute program specified via file descriptor
copy()Copy by looping io::copy
copy_sendfile()Copy using sendfile
copy_splice()Copy using splice
pipe()Create a pipe
SocketDescriptionLinuxmacOSWindowsFreeBSDNetBSDiOSAndroid
socket()Create a socket
accept()Accept a connection on a socket
is_connected()Get whether a pending connection is connected
unreceived()Get number of bytes readable
unsent()Get number of bytes that have yet to be acknowledged
EnvDescriptionLinuxmacOSWindowsFreeBSDNetBSDiOSAndroid
exe()Opens the current running executable
exe_path()Get a path to the current running executable
args()Get command line arguments
vars()Get environment variables
ProcessDescriptionLinuxmacOSWindowsFreeBSDNetBSDiOSAndroid
count()Count the processes visible to the current process
count_threads()Count the threads visible to the current process
fork()Fork a process, using process descriptors where available
ValgrindDescriptionLinuxmacOSWindowsFreeBSDNetBSDiOSAndroid
is()Check if running under Valgrind
start_fd()Get Valgrind's file descriptor range
## License Licensed under either of * Apache License, Version 2.0, ([LICENSE-APACHE.txt](LICENSE-APACHE.txt) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT.txt](LICENSE-MIT.txt) or http://opensource.org/licenses/MIT) at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.