HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
saprykin
plibsys
C2016–2016
saprykin / plibsys

plibsys

Highly portable C system library: threads and synchronization primitives, sockets (TCP, UDP, SCTP), IPv4 and IPv6, IPC, hash functions (MD5, SHA-1, SHA-2, SHA-3, GOST), binary trees (RB, AVL) and more. Native code performance.

2Distinct people
2Mentions
1Explicit recommenders
772GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Highly portable C system library: threads and synchronization primitives, sockets (TCP, UDP, SCTP), IPv4 and IPv6, IPC, hash functions (MD5, SHA-1, SHA-2, SHA-3, GOST), binary trees (RB, AVL) and more. Native code performance.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

C is hard. You're right though, why not use C? It's a good language, and it's hard to beat for it's low level powers, portability and speed. What go gives you is high level…

shadowmint used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour2 dated mentions

Observed mentions: 2016-06-21 10:54:15 UTC to 2016-06-21 12:05:58 UTC.

012016-06-21 10:00:00 UTC to 2016-06-21 11:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 21, 10:002016-06-21 11:00:00 UTC to 2016-06-21 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJun 21, 11:002016-06-21 12:00:00 UTC to 2016-06-21 13:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 21, 12:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jun 21, 10:002016-06-21 10:00:00 UTC2016-06-21 11:00:00 UTC101
Jun 21, 11:002016-06-21 11:00:00 UTC2016-06-21 12:00:00 UTC000
Jun 21, 12:002016-06-21 12:00:00 UTC2016-06-21 13:00:00 UTC101

What Hacker News says

2 sources
>Have a look at this excellent highly portable IPC library: https://github.com/saprykin/plibsys <-- That's the right choice for the right job. >[...] >...but for a web service or web framework? >nah. >Go was written specifically for those purposes, with high throughput performance as its goal, and a significant amount of effort devoted to optimizing that. >It's not suitable for something like plibsys either. I found this part of your comment difficult to understand. Is C not suitable for plibsys after all, or is it Go which wouldn't be suitable, or something else?
In Iris: Fast back-end web framework for Go
shadowmint·Jun 21, 2016Recommendation phrase
C is hard. You're right though, why not use C? It's a good language, and it's hard to beat for it's low level powers, portability and speed. What go gives you is high level productivity, testing, a solution for package management (abit a rubbish one), and a good ecosystem of 3rd party libraries for things like AWS. The things that suck about C: - It's hard to do right. There's a great book called 'Deep C Secrets' on this topic by Peter van der Linden. If you haven't read it, I recommend against writing a large project in C until you have. - C has no package management solution at all. Go doesn't have a great one, but at least it has some kind of high level management for this. Working with C dependencies and the C various build tools for them is a nightmare. - C has no memory safety, which means if you do screw up, the 'things that can do
Read the rest
wrong' are much much worse than if you screw up in a relatively safe language like python or java. - C (and even 'modern C++') suffer from major portability problems. Not that it's not portable; it is, but in order to be portable, you have to write weird, arcane and terrible code. It's entirely common to see code littered with `#ifdef WIN32 ...` or a typedef for every primitive type (eg. mInt32) to abstract across compiler differences etc. This means any code coverage you get is probably going to poorly represent the actual code in the library. Oh, did I mention C has no test runner? (although to be fair, CMake helps). On the other hand, it is extremely embedable, and if you know what you're doing, it is the right choice. Have a look at this excellent highly portable IPC library: https://github.com/saprykin/plibsys <-- That's the right choice for the right job. It's also the right choice, arguably, for a low level component that might import into some other slow-as-balls language like python. I'd argue Rust is a better choice, but hey, its much of a muchness. ...but for a web service or web framework? nah. Go was written specifically for those purposes, with high throughput performance as its goal, and a significant amount of effort devoted to optimizing that. It's not suitable for something like plibsys either.
In Iris: Fast back-end web framework for Go

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.