All Projects → saprykin → Plibsys

saprykin / Plibsys

Licence: mit
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.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Plibsys

freebind
IPv4 and IPv6 address rate limiting evasion tool
Stars: ✭ 88 (-78.11%)
Mutual labels:  socket, ipv6, ipv4
Packetsender
Network utility for sending / receiving TCP, UDP, SSL
Stars: ✭ 1,349 (+235.57%)
Mutual labels:  ipv6, ipv4, cross-platform
Netlink
Socket and Networking Library using msgpack.org[C++11]
Stars: ✭ 197 (-51%)
Mutual labels:  ipv6, ipv4, cross-platform
geoip
🌚 🌍 🌝 GeoIP 规则文件加强版,同时支持定制 V2Ray dat 格式路由规则文件 geoip.dat 和 MaxMind mmdb 格式文件 Country.mmdb。Enhanced edition of GeoIP files for V2Ray, Xray-core, Trojan-Go, Clash and Leaf, with replaced CN IPv4 CIDR available from ipip.net, appended CIDR lists and more.
Stars: ✭ 524 (+30.35%)
Mutual labels:  ipv6, ipv4
go-inet
A Go library for reading, formatting, sorting, lookup and converting IP-addresses and IP-blocks
Stars: ✭ 14 (-96.52%)
Mutual labels:  ipv6, ipv4
ngx-ip
An Angular network address component (IPv4, IPv6 and MAC)
Stars: ✭ 20 (-95.02%)
Mutual labels:  ipv6, ipv4
whereabouts
An HTTP service for mapping IPv4 and IPv6 addresses to cities, countries & continents
Stars: ✭ 16 (-96.02%)
Mutual labels:  ipv6, ipv4
pac
Proxy Auto Config generator,自动代理配置生成PAC,可配合ss小飞机使用
Stars: ✭ 40 (-90.05%)
Mutual labels:  ipv6, ipv4
cidr
golang to calculate CIDR network
Stars: ✭ 51 (-87.31%)
Mutual labels:  ipv6, ipv4
Vedetta
OpenBSD Router Boilerplate
Stars: ✭ 260 (-35.32%)
Mutual labels:  ipv6, ipv4
Ipnetwork
IPNetwork command line and C# library take care of complex network, IP, IPv4, IPv6, netmask, CIDR, subnet, subnetting, supernet, and supernetting calculation for .NET developers. It works with IPv4 as well as IPv6, is written in C#, has a light and clean API, and is fully unit-tested
Stars: ✭ 276 (-31.34%)
Mutual labels:  ipv6, ipv4
go-net-radix
Go bindings for radix tree library for fast subnet (IPv4 and IPv6) lookups
Stars: ✭ 37 (-90.8%)
Mutual labels:  ipv6, ipv4
uC-TCP-IP
A compact, reliable, high-performance TCP/IP protocol stack. Features dual IPv4 and IPv6 support, an SSL/TLS socket option, and support for Ethernet, Wi-Fi, and PHY controllers.
Stars: ✭ 66 (-83.58%)
Mutual labels:  ipv6, ipv4
6in4
IPv6-in-IPv4 Tunnel Server
Stars: ✭ 133 (-66.92%)
Mutual labels:  ipv6, ipv4
Valvesockets Csharp
Managed C# abstraction of GameNetworkingSockets library by Valve Software
Stars: ✭ 273 (-32.09%)
Mutual labels:  ipv6, ipv4
Reproc
A cross-platform (C99/C++11) process library
Stars: ✭ 325 (-19.15%)
Mutual labels:  cross-platform, posix
v6dns
A DNS Server which lets IPv4-prioritized devices to use IPv6 first, or lets IPv6-prioritized devices to use IPv4 first.
Stars: ✭ 16 (-96.02%)
Mutual labels:  ipv6, ipv4
Ip Address
💻 a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript
Stars: ✭ 353 (-12.19%)
Mutual labels:  ipv6, ipv4
Aggregator
A stand-alone class implementation of the IPv4+IPv6 IP+CIDR aggregator from CIDRAM.
Stars: ✭ 19 (-95.27%)
Mutual labels:  ipv6, ipv4
Ip
🌏根据IpV4、IpV6地址获取定位信息的PHP🐘组件 PHP components that obtain location information based on IpV4, IpV6 addresses
Stars: ✭ 23 (-94.28%)
Mutual labels:  ipv6, ipv4

About

plibsys is a cross-platform system C library with some helpful routines. It has zero third-party dependencies and uses only native system calls.

Features

plibsys gives you:

  • Platform independent data types
  • Threads
  • Mutexes
  • Condition variables
  • Read-write locks
  • System-wide semaphores
  • System-wide shared memory
  • Optimized spinlock
  • Atomic operations
  • Socket support (UDP, TCP, SCTP) with IPv4 and IPv6
  • Hash functions: MD5, SHA-1, SHA-2, SHA-3, GOST (R 34.11-94)
  • Binary trees: BST, red-black, AVL
  • INI file parser
  • High resolution time profiler
  • Files and directories
  • Shared library loading
  • Useful routines for linked lists, strings, hash tables
  • Macros for CPU architecture, OS and compiler detection
  • Macros for variable arguments

To achieve maximum native performance on each platform several implementation models are used:

  • Threading models: POSIX, Solaris, OS/2, BeOS, AtheOS, AmigaOS and Win32
  • IPC models: POSIX, System V, OS/2, AmigaOS and Win32
  • Time profiler models: POSIX, Solaris, Mach, OS/2, BeOS, AmigaOS, Win32 and generic
  • Directory iterating models: POSIX, OS/2 and Win32
  • Shared library loading models: POSIX, HP-UX, OS/2, BeOS, AmigaOS and Win32
  • Atomic operations models: sync, C11, DECC, Win32 and simulated
  • Sockets: BSD with Win32 support

Platforms

plibsys is a cross-platform, highly portable library, it is fully covered with unit tests and was tested on the following desktop platforms:

  • GNU/Linux
  • macOS
  • Windows
  • Cygwin, MSYS
  • FreeBSD, NetBSD, OpenBSD
  • DragonFlyBSD
  • Solaris
  • AIX
  • HP-UX
  • Tru64
  • OpenVMS
  • OS/2
  • IRIX
  • QNX Neutrino
  • UnixWare 7
  • SCO OpenServer 5
  • Haiku
  • Syllable
  • BeOS
  • AmigaOS

plibsys also supports the following mobile platforms:

  • iOS, watchOS, tvOS
  • Android
  • BlackBerry 10

It should also work on other *nix systems with or without minimal efforts.

Compilers

plibsys was tested with the following compilers:

  • MSVC (x86, x64) 2003 and above
  • MinGW (x86, x64)
  • Open Watcom (x86)
  • Borland (x86)
  • GCC (x86, x64, PPC32be, PPC64be/le, IA-64/32, IA-64, Alpha, HPPA2.0-32, MIPS32, AArch32, SPARCv9)
  • Clang (x86, x64, PPC32be, AArch32, AArch64)
  • Intel (x86, x64)
  • QCC (x86, AArch32)
  • Oracle Solaris Studio (x86, x64, SPARCv9)
  • MIPSpro (MIPS32)
  • XL C (PPC64le)
  • DEC C (Alpha)
  • PGI (x86, x64)
  • Cray (x64)

Building

Use CMake to build plibsys for target platform. For OpenVMS see platforms/vms-general directory.

Documentation

Documentation for the latest stable verison is avaialble through the GitHub Pages.

License

plibsys is distributed under the terms of MIT license.

More

More information about the library is available on the Wiki.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].