Skip to content

My personal C library (strings, lists, logging, serial port, pretty dumb mark-sweep GC, etc.)

License

Notifications You must be signed in to change notification settings

electrodude/libaem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libaem

AEM's personal C library

Features

  • aem_stringbuf: string builder/storage
  • aem_stringslice: string slice/iterator/parser helper
  • aem_stack: dynamically resizeable vector of void *
  • aem_nfa: NFA-based regular expression engine and lexer
  • aem_log: logging facility: shows context, filter by loglevel, redirect output

  • aem_serial: cross-platform serial port interface (only tested on Unix)

  • AEM_LL: embedded circular doubly linked list (all macros)

  • aem_iter_gen: graph iterator helper

  • aem_gc: simple mark/sweep garbage collector

  • aem_pmcrcu: Single-threaded implementations of call_rcu, synchronize_rcu, and rcu_barrier

  • aem_module: Dynamic module loader

Planned Features

  • aem_hash: hash table
  • aem_childproc: child process manager
  • aem_poll: poll(2)-based event loop
    • Works with aem_net.
  • aem_net: abstracted network interface
    • Uses aem_stream.
  • aem_stream: data stream abstraction
    • Includes utility stream transducers to e.g. split a stream into lines.

License

Unless otherwise specified, all files in this repository are licensed under the MIT license, found in the file LICENSE in the root of this repository.

The following files in this repository were not written by me (AEM) and may be subject to different licenses:

FAQ

You're so conceited that you named a library after yourself?

Well, at least there's precedent for it.

About

My personal C library (strings, lists, logging, serial port, pretty dumb mark-sweep GC, etc.)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages