Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
safeclib
-
LLVM's Libc Gets Much Faster memcpy For RISC-V
Of course assembler spezializations are an anti-pattern, because the optimizer should be fixed to do it much better. Better C code is often 2x faster than hand optimized assembler.
Eg my C memcpy with inlined and vectorized clang beats glibc or gcc memcpy in assembler easily. https://github.com/rurban/safeclib/blob/master/tests/perf_me...
-
Site with common coding mistakes that cause security threats with code examples?
+1 This along with https://github.com/rurban/safeclib (and its forks/derivatives).
- Safeclib – C11 Annex K implementation
-
What are the major dialects of C nowadays?
I have yet to look into Annex K. It didn't seem to gain much traction. Some people at Red Hat wrote a field experience report about it. I recently discovered an implementation of Annex K functions that claims to be pretty portable, safeclib.
-
memmove_s?
See my testsuite and remarks at https://github.com/rurban/safeclib/blob/master/doc/libc-overview.md , esp. towards the windows implementation
- Why does Windows 10 run faster than Fedora?
-
A 100LOC C impl of memset, that is faster than glibc's
I do it because nobody else implemented a secure memset. What they call secure is just avoiding that the compiler ignores it. A secure memset also cleans the caches with a memory barrier, so that meltdown cannot read it.
explicit_bzero and it's numerous variants are not only insecure, but also slow. (byte wise!)
Only safelibc has a secure memset_s. https://github.com/rurban/safeclib/blob/master/tests/perf_me...
libnbd
- jq 1.7 Released
-
Fuzzing ping(8) and finding a 24 year old bug
Below is the small framework we use to fuzz a network client. It works by creating a Unix socket, forking, then having the client (under test) on one side of the socket and a small loop which reads the input file into the socket on the other side.
https://gitlab.com/nbdkit/libnbd/-/tree/master/fuzzing
-
The fastest way to copy a file
We did a bunch of benchmarking around this when writing nbdcopy (https://gitlab.com/nbdkit/libnbd/-/tree/master/copy) which can copy file to file as well as between local files and NBD servers. There was also the goal to avoid polluting the page cache, which depending on if you're going to use the file content immediately afterwards or not matters.
Anyway long story short, the best thing we found (for Linux) was Linus's own advice linked from here: https://stackoverflow.com/a/3756466
- A 100LOC C impl of memset, that is faster than glibc's
What are some alternatives?
memset_benchmark - This repository contains high-performance implementations of memset and memcpy in assembly.
nbdkit
qemu
rsl - reserialise: lossy but versatile conversion between data serialisation formats
gcc
jackson-jq - jq for Jackson Java JSON Processor
libu8ident - unicode security guidelines for identifiers
fancy-memset - small, fast memset based on microsoft's design
copies-and-fills
fancy-memcmp - small, fast memcmp