Git Product home page Git Product logo

linecode / plibsys Goto Github PK

View Code? Open in Web Editor NEW

This project forked from saprykin/plibsys

0.0 1.0 0.0 8.04 MB

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.

License: MIT License

Shell 0.18% C++ 19.20% C 72.25% CMake 6.90% DIGITAL Command Language 1.47%

plibsys's Introduction

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, Alpha, HPPA2.0-32, MIPS64/32, AArch32/64, SPARCv8/9, S390x, LoongArch64)
  • Clang (x86, x64, PPC32be, PPC64le, AArch32/64, S390x, LoongArch64)
  • Intel (x86, x64)
  • QCC (x86, AArch32)
  • Oracle Solaris Studio (x86, x64, SPARCv8/9)
  • 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.

plibsys's People

Contributors

saprykin avatar jddurand avatar etodanik avatar harrisjt avatar timgates42 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.