GitXplorerGitXplorer
r

socket2

public
698 stars
231 forks
46 issues

Commits

List of commits on branch master.
Verified
56e625efa4c85157636027823af1b1cc84e758f6

Add Socket::(set_)recv_hoplimit_v6 (#543)

aandreybuchinskiy committed a month ago
Verified
60d118fa4724f756c31944c86dc1ecd5dfc4c9b7

Release v0.5.8 (#537)

TThomasdezeeuw committed 2 months ago
Verified
33a98be5635c816a18b490f6d3888b667639c891

Add support for original_dst for windows (#529)

kkeithmattix committed 2 months ago
Verified
68de29bc98eb2effd38c977e160417c0a7e99f1b

Remove Socket::(set_)header_included_v6 on unsupported OS

jjjnicola committed 2 months ago
Verified
3a938932829ea6ee3025d2d7a86c7b095c76e6c3

Add Apple visionOS support

QQuentinPerez committed 7 months ago
Unverified
8c97337aadb726f7b6f3a1a3f90e969abb3a9732

Use FreeBSD 13.2 again

TThomasdezeeuw committed 7 months ago

README

The README file for this repository.

Socket2

Socket2 is a crate that provides utilities for creating and using sockets.

The goal of this crate is to create and use a socket using advanced configuration options (those that are not available in the types in the standard library) without using any unsafe code.

This crate provides as direct as possible access to the system's functionality for sockets, this means little effort to provide cross-platform utilities. It is up to the user to know how to use sockets when using this crate. If you don't know how to create a socket using libc/system calls then this crate is not for you. Most, if not all, functions directly relate to the equivalent system call with no error handling applied, so no handling errors such as EINTR. As a result using this crate can be a little wordy, but it should give you maximal flexibility over configuration of sockets.

See the API documentation for more.

Branches

Currently Socket2 supports two versions: v0.5 and v0.4. Version 0.5 is being developed in the master branch. Version 0.4 is developed in the v0.4.x branch branch.

OS support

Socket2 attempts to support the same OS/architectures as Rust does, see https://doc.rust-lang.org/nightly/rustc/platform-support.html. However this is not always possible, below is current list of support OSs.

If your favorite OS is not on the list consider contributing it! See issue #78.

Tier 1

These OSs are tested with each commit in the CI and must always pass the tests. All functions/types/etc., excluding ones behind the all feature, must work on these OSs.

  • Linux
  • macOS
  • Windows

Tier 2

These OSs are currently build in the CI, but not tested. Not all functions/types/etc. may work on these OSs, even ones not behind the all feature flag.

  • Android
  • FreeBSD
  • Fuchsia
  • iOS
  • illumos
  • NetBSD
  • Redox
  • Solaris

Minimum Supported Rust Version (MSRV)

Socket2 uses 1.63.0 as MSRV.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.