Our great sponsors
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.
buffet
-
The case against an alternative to C
Made this C lib for exactly the reasons you mention. I love C but got mad at the constant bounds errors and copying.
https://github.com/alcover/buffet
-
Proposal for a full-fledged C String
Dynamic allocation, SSO, views, refcounting, etc.. are spread on various implementations.
C++ separates string and string_view. And they're not fully compatible. (Ex. you can't concat cross-type !?).
Rust has str, &str, String Box, ... ?
In the spirit of "a slice of a string is still a string", why not pack it all into a single type ? And offer security in the process.
Here's the scheme : https://github.com/alcover/buffet/raw/main/assets/schema.png
Here's the code : https://github.com/alcover/buffet
-
One String to Rule Them All
Buffet
- Buffet - polymorphic C buffer in 16 bytes with SSO, views, refcount
- Buffet – An All-inclusive Buffer for C
-
Hacker News top posts: Mar 8, 2022
Buffet – An All-inclusive Buffer for C\ (63 comments)
- Buffet
-
Langage C : un type polymorphe de buffer avec SSO, Views, refcount, en seulement 16 octets
Buffet
nbdkit
-
Why AWS Supports Valkey
This is correct, but doesn't quite explain why. It's because when you accept contributions from a variety of authors, without using a CLA, then your code base ends up with a patchwork of copyright, making relicensing practically impossible as you have to get buy-in from every author or else determine that author's contributions and remove/rewrite them.
GPL/LGPL are excellent licenses, but this patchwork of copyright can apply for any license you use. For a small project we wrote which was under BSD, we recently had to make a small (non-functional) change to the license, and we got buy-in from all the authors to do this which took quite a long time: https://gitlab.com/nbdkit/nbdkit/-/commit/952ffe0fc7685ea775...
-
Disk write buffering and its interactions with write flushes
That second link is wrong, should be: https://gitlab.com/nbdkit/nbdkit/-/commit/a956e2e75d6c88eeef...
-
The C++20 Naughty and Nice List for Game Devs
I think an exception might be made for a plain "C-like" struct that doesn't initialize members or contain anything except basic types. In the specific example[0] the code is actually surrounded by extern "C" { ... } so I suppose that the compiler "knows" this is a plain C struct?
[0] https://gitlab.com/nbdkit/nbdkit/-/blob/cd761c9bf770b23f678f...
- Static Analysis Tools for C
- jq 1.7 Released
-
The OpenTF Manifesto
We relicensed[1] a project which had 10 contributors, and we got every single one of them to do an Acked-by (by email) which took some weeks. That was the advice from our lawyers. Can't imagine the impossible hassle of doing the same for something like Linux.
[1] https://gitlab.com/nbdkit/nbdkit/-/commit/952ffe0fc7685ea775...
- TIL: You Can Stop Updating Copyright Attribution Years (2021)
- Starting October 19, storage limit will be enforced on all Gitlab Free accounts
- nbdkit: High performance Linux block devices in userspace
What are some alternatives?
asciiMol - Curses based ASCII molecule viewer for terminals.
dattobd - kernel module for taking block-level snapshots and incremental backups of Linux block devices
SDS - Simple Dynamic Strings library for C
libnbd
librope - UTF-8 rope library for C
qemu
stricks - Managed C strings library
transgui - 🧲 A feature rich cross platform Transmission BitTorrent client. Faster and has more functionality than the built-in web GUI.
clib - Package manager for the C programming language.
jackson-jq - jq for Jackson Java JSON Processor
stan - 🕵️ Haskell STatic ANalyser
git-filter-repo - Quickly rewrite git repository history (filter-branch replacement)