Skip to content

A tiny (232 bytes) and fast Circular Buffer implementation

License

Notifications You must be signed in to change notification settings

AlexMasterov/fixed-circular-buffer.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fixed Circular Buffer

A tiny, fast and heap safe singly-linked list of fixed-size (2048) circular buffers.

npm GitHub license Build Status Coverage Status

Installation

# npm
npm install fixed-circular-buffer

# yarn
yarn add fixed-circular-buffer

Usage

const CircularBuffer = require('fixed-circular-buffer')

const Q = new CircularBuffer()

Q.push('xyz')

Q.size        // 1
Q.length      // 2048

Q.shift()     // 'xyz'
Q.shift()     // null

let i = 2049  // data items
while (i > 0) Q.push(i -= 1)

Q.size        // 2049
Q.length      // 4096

Tests

Run tests as follows:

npm run test

License

Copyright © 2018–2019 Alex Masterov <alex.masterow@gmail.com>

Fixed Circular Buffer is licensed under MIT and can be used for any personal or commercial project.