Git Product home page Git Product logo

avs_commons's Introduction

AVSystem Commons Library

A set of common code used in AVSystem for projects written in C.

Currently the included components are:

  • Data structures
    • avs_buffer - simple data buffer with circular-like semantics
    • avs_list - lightweight, generic and type-safe implementation of a singly linked list, with API optimized for ad-hoc usage
    • avs_rbtree - basic implementation of a red-black binary search tree
    • avs_vector - generic implementation of a C++-style vector (dynamic array)
  • Networking framework
  • Other modules
    • avs_algorithm - currently contains a base64 encoder and decoder
    • avs_log - simple logging framework
    • avs_stream - generic framework for I/O streams; includes pre-implemented streams that can be used through its unified API:
      • md5.h - calculating MD5 hashes
      • netbuf.h - buffered network I/O
      • stream_file.h - file I/O
      • stream_inbuf.h - read-only wrapper for raw memory buffers
      • stream_membuf.h - in-memory stream optimized for a single-message write-then-read cycle
      • stream_outbuf.h - write-only wrapper for raw memory buffers
    • avs_unit - simple and easy to use unit testing framework
    • avs_utils - currently contains utility function for handling time values, psudorandom number generation and string tokenization

Most of the library is written in standard and portable C99. There are some dependencies on POSIX APIs, but there are provisions for replacing them when necessary (see the compat directory for details).

avs_unit relies on some GCC-isms and is unlikely to work with any compiler that is not based on either GCC or Clang.

The code is available under Apache 2.0 License.

Contact, contributing

  • Your feedback is important! Feel free to create an Issue here on GitHub.
  • If you would like to contribute to avs_commons just send us a pull request.

avs_commons's People

Contributors

dextero avatar kylo avatar sznaider 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.