GithubHelp home page GithubHelp logo

drobilla / zix Goto Github PK

View Code? Open in Web Editor NEW
9.0 3.0 2.0 1.38 MB

A lightweight C library of portability wrappers and data structures

Home Page: https://gitlab.com/drobilla/zix

License: ISC License

C 89.62% Meson 5.78% Python 1.29% C++ 3.31%
c data-structures threads b-tree hash-table ringbuffer hash filesystem

zix's Introduction

Zix

Zix is a lightweight C library of portability wrappers and data structures.

Components

  • Allocation

    • ZixAllocator: A customizable allocator.
      • ZixBumpAllocator: A simple realtime-safe "bump-pointer" allocator.
  • Algorithms

    • zix/digest.h: Digest functions suitable for hashing arbitrary data.
  • Data Structures

    • ZixBTree: A page-allocated B-tree.
    • ZixHash: An open-addressing hash table.
    • ZixRing: A lock-free realtime-safe ring buffer.
    • ZixTree: A binary search tree.
  • Threading

    • ZixSem: A portable semaphore wrapper.
    • ZixThread: A portable thread wrapper.
  • File System

    • zix/filesystem.h: Functions for working with filesystems.
    • zix/path.h: Functions for working with filesystem paths lexically.

Platforms

Zix is continually tested on:

  • Debian GNU/Linux 11 (x86, x64, arm32, and arm64)
  • Fedora 36 (x64)
  • FreeBSD 13.2 (x64)
  • MacOS 11.7 (x64)
  • Node 12 (as wasm via emscripten)
  • Windows 10 (x86)

Dependencies

None, except the C standard library, and some POSIX and platform-specific APIs where necessary.

Documentation

-- David Robillard [email protected]

zix's People

Contributors

drobilla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

mfkiwl krasjet

zix's Issues

Invalid #include when linking and compiling.

Getting a number of these errors when trying to link and build with the library installed:

 `/usr/include/zix-0/zix/ring.h:7:10: fatal error: zix/allocator.h: No such file or directory
   7 | #include "zix/allocator.h" `

I was able to get it to work by removing the leading "zix/" for the various files:

  `#include "zix/allocator.h"  >> #include "allocator.h"`

It seems the #include files are in the same directory and the "zix/" is confusing things.

Occurs on Manjaro, Ubuntu Studio, OpenSuse Tumbleweed and Fedora 36.

Built and installed from this repository as well as used the arch/aur package with same result.

Thanks.

semaphore API is skipped when tests are disabled

I get the following when using as a subproject with tests disabled:

zix| Dependency threads skipped: feature tests disabled

This seems to be the cause

thread_dep = dependency('threads', required: get_option('tests'))

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.