Cryptographically verifiable, distributed dependency reviews
Add the last reviewed version to Cargo.toml / [dependencies]:
neli = "0.6.1"
Please, use mobile in landscape.
Filter reviews clicking on the numbers in the summary.
Full column names in tooltip hints: rating Negative, rating Neutral, rating Positive, rating Strong, thoroughness, understanding, reviews count.
© bestia.dev 2023, MIT License, Version: 2023.608.1636
Open source repository for this web app: https://github.com/bestia-dev/cargo_crev_web/
Safety
unsafe
limited to interaction with the Netlink socket.Uses of
unsafe
All uses of
unsafe
are warranted and blocks span theminimum necessary amount of code.
unsafe
blocks wrap syscalls on the socket descriptor(
fcntl
,socket
,setsockopt
,getsockopt
,send
,recv
,close
). Arguments in general don’tdepend on dynamically sized objects, and where they do, it is
safe buffer types whose lengths are handled correctly.
line 65:
socket()
, args: only integer values, returnok.
line 82:
fcntl()
(two calls), args: integer values,return ok.
line 96:
fcntl()
(two calls), args: integer values,return ok.
line 110:
fcntl()
, args: integer values, return ok.line 121:
mem::zeroed()
, ok because asockaddr_nl
can be safely zero initialized.
line 125:
bind()
, args: integer and pointer values,correct size supplied for
struct sockaddr
pointer arg,return ok.
line 144:
setsockopt()
, args: integer values, arg sizeok, return ok.
line 163:
setsockopt()
, args: integer values, arg sizeok, return ok.
line 183, 197:
getsockopt()
, args: integer and pointervalues, out-pointer arg is zero initialized
Vec
, argsize ok, return ok.
line 220:
send()
, args: integer and pointer values, argsize ok, return ok.
line 238:
recv()
, args: integer and pointer values, argsize ok, return ok.
line 282:
close()
, arg: integer value, return discardedbut is harmless in
Drop
impl.line 851:
NlSocket::from_raw_fd()
, arg: dummy value,ok for unit test.
unsafe fn
in trait impls forFromRawFd
. → Nothingactually unsafe going on in there; wrapped assigment is plain
Copy
data only except for heap allocation via safeinterface.
Pros
Comprehensive wrapper for talking Netlink and various dialects
thereof (rtnetlink, generic netlink, …) to the Kernel.
Active development.
Typed APIs allow for intuitive use of Netlink APIs that is
superior to the everything-is-an-int C analogues (
libnl*
,libmnl
),Provides macros for defining idiomatic wrappers of other
Netlink based interfaces.
Cons
v0.x versioned, frequent API breakage.
Depends itself on various zerover crates.