8000 GitHub - 15801024150/listpack: A serialization format and implementation for backward-traversable lists of strings.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

A serialization format and implementation for backward-traversable lists of strings.

Notifications You must be signed in to change notification settings

15801024150/listpack

8000
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Listpack: work in progress implementation

This repository is a work in progress, currently not usable, implementation of a data structure called listpack, suitable to store lists of string elements in a representation which is space efficient and that can be efficiently accessed from left to right and from right to left.

You can find the specification in the listpack.md file in this repository.

The listpack.c file implements the full specification, however since Redis Conf 2017 is near, I'll pause the work for some time to focus on talks & training day material. The implementation lacks a complete fuzz testing suite like the one of rax, the functions to validate a listpack loaded from an untrusted source, and good API documentation (but listpack.c top comments in functions are a good starting point).

The code is almost completely untested, so it will likely explode while you are reading this README file.

API TODO

int lpIsValid(unsigned char *lp, uint32_t len);
int lpSelfTest(void);
int lpSplit(unsigned char *lp, unsigned char *p, unsigned char **left, unsigned char **right);
unsigned char *lpMerge(unsigned char *left, unsigned char *right);

About

A serialization format and implementation for backward-traversable lists of strings.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.9%
  • Makefile 1.1%
0