Skip to content


Subversion checkout URL

You can clone with
Download ZIP
pstore, a high-performance, read-optimized database system.
C Ruby Other
branch: master

Pimp up README

Signed-off-by: Pekka Enberg <>
latest commit 936afe25c0
@penberg authored
Failed to load latest commit information.
Documentation extent: SHA1 hashing
compat Add strndup() compat function for SunOS
fastlz Add FastLZ sources to pstore
features Fix appending to existing file feature test case
fields Upgrade to Fields 0.6.0
include extent: SHA1 hashing
scripts Move unit tests to 'test' directory
snappy extents: Add support for Snappy
test pstore: Remove 'csv.h' and 'csv.c'
tools/gendsv Deduce format from filename in 'gendsv'
.gitignore features: Use Aruba
.travis.yml Fix openssl library installation for Travis CI
COPYING Revert "Use GPL version 2 as the license"
Gemfile Gemfile: Remove dependency on 'rspec'
Gemfile.lock Gemfile: Remove dependency on 'rspec'
Makefile Pimp up README Pimp up README
TODO extent: SHA1 hashing
buffer.c extent: SHA1 hashing
builtin-cat.c builtin-cat: Use getopts to parse command line arguments
builtin-export.c Add 'pstore_value_string'
builtin-extend.c Fix error handling in library code
builtin-import.c Add 'pstore_value_string'
builtin-repack.c Add 'pstore_value_string'
builtin-stat.c extent: SHA1 hashing
builtins-common.c Fix whitespace in 'id_or_name_matches'
column.c Fix error handling in library code
compress.c Fix error handling in library code
die.c die: Use stderr rather than stdout
extent.c extent: SHA1 hashing
harness.c Fix mmap_window__in_region() to take ->mmap_pos into account
header.c Use 'off_t' for 'lseek' return value
mmap-source.c Fix error handling in library code
mmap-window.c Fix error handling in library code
pstore.c Clean up usage format string
read-write.c Move die() function definition out of library code
segment.c Fix error handling in library code
table.c extent: SHA1 hashing
util.c Move die() function definition out of library code


Build Status

Pstore is a high-performance, read-optimized database system. The core is implemented as a shared library libpstore that can be embedded in third-party applications.

There's also a CLI application pstore that is used to manipulate and inspect pstore files, and convert CSV files into pstore format.

The design of pstore is loosely based on C-Store which is another Open Source read-optimized database. The main idea is to store tabular data in column-order to improve read performance for special purpose workloads.


First, install dependencies:


$ yum install openssl-devel


$ apt-get install libssl-dev

Then install pstore:

$ make install

The command installs an executable pstore to $HOME/bin.


The first step is to create a database file. You can import a CSV file into a pstore database with the following command:

pstore import dataset.csv dataset.out

After that, you can use the pstore cat command to look into the imported database:

pstore cat dataset.out

With pstore import --append you can append more data into a pstore database:

pstore import --append moredata.csv dataset.out

Running Tests

Pstore's test suite requires Ruby 1.9 and Bundler. If your operating system does not have Ruby 1.9, take a look at rbenv or RVM.

When you have both Ruby 1.9 and Bundler, install Rubygem dependencies:

bundle install

Then run the tests:

make check


Pstore is distributed under the LGPL version 2.1 license.

Something went wrong with that request. Please try again.