返回排行榜

MaJerle/lwrb

C

Lightweight generic ring buffer manager library

ringring-bufferclibrarygenericmanagercycliccyclic-bufferbufferfifopipe
Star 增长趋势
Star
1.5k
Forks
345
周增长
Issues
1
5001k1.5k
2019年1月2021年7月2024年1月2026年7月
README

Lightweight ring buffer manager

Library provides generic FIFO ring buffer implementation.

Read first: Documentation

Features

  • Written in C (C11), compatible with size_t for size data types
  • Platform independent default code - with restrictions for smaller CPU architectures (< sizeof(size_t))
  • FIFO (First In First Out) buffer implementation
  • No dynamic memory allocation, data is static array
  • Uses optimized memory copy instead of loops to read/write data from/to memory
  • Thread safe when used as pipe with single write and single read entries - when CPU read/write operation for size_t are single instruction (ARM Cortex-M for instance)
  • Interrupt safe when used as pipe with single write and single read entries - when CPU read/write operation for size_t are single instruction (ARM Cortex-M for instance)
  • For CPU systems with smaller architecture than sizeof(size_t) (AVR for instance), atomic protection is required for read-write operation of buffer writes
  • Suitable for DMA transfers from and to memory with zero-copy overhead between buffer and application memory
  • Supports data peek, skip for read and advance for write
  • Implements support for event notifications
  • User friendly MIT license

Contribute

Fresh contributions are always welcome. Simple instructions to proceed:

  1. Fork Github repository
  2. Follow C style & coding rules already used in the project
  3. Create a pull request to develop branch with new features or bug fixes

Alternatively you may:

  1. Report a bug
  2. Ask for a feature request
相关仓库
weavejester/compojure

A concise routing library for Ring/Clojure

ClojureEclipse Public License 1.0clojurering
4.1k259
ring-clojure/ring

Clojure HTTP server abstraction

ClojureMIT Licenseringclojure
3.9k526
MaJerle/stm32-usart-uart-dma-rx-tx

STM32 examples for USART using DMA for efficient RX and TX transmission

CMIT Licensestm32usart
1.8k393
luispadron/UICircularProgressRing

A circular progress bar for iOS written in Swift

SwiftMIT Licensexcodeprogress
1.7k284
secluso/core

A privacy-preserving Raspberry Pi home security camera that uses advanced end-to-end encryption.

Rustcrates.ioGNU General Public License v3.0end-to-end-encryptionhome-security
secluso.com
1.6k47
metosin/reitit

A fast data-driven routing library for Clojure/Script

ClojureEclipse Public License 1.0clojureclojurescript
cljdoc.org/d/metosin/reitit/
1.6k263
maxkonovalov/MKRingProgressView

⭕️ Ring progress view similar to Activity app on Apple Watch

SwiftMIT Licenseringprogress
1.6k139
dgreif/ring

Unofficial packages for Ring Doorbells, Cameras, Alarm System, and Smart Lighting

TypeScriptnpmMIT Licensehomebridge-pluginring
1.5k203
ring-lang/ring

A simple, lightweight, flexible, embeddable, portable and multi-paradigm dynamic programming language for developing applications, tools, and domain-specific languages

CMIT Licenseprogramming-languagecompiler
ring-lang.github.io
1.5k434
HotBitmapGG/CreditSesameRingView

Imitation of Ali credit sesame new old ring view.http://www.jianshu.com/p/8486a5baa708

JavaMavenApache License 2.0ringali-credit-sesame
1.2k189
metosin/compojure-api

Sweet web apis with Compojure & Swagger

ClojureEclipse Public License 1.0clojurerest
metosin.github.io/compojure-api/doc/
1.1k146
Arvindcs/SwiftUI-Animation

SwiftUI Animation

SwiftMIT Licenseswiftuiswiftui-animation
1k98