STXXL: Standard Template Library for Extra Large Data Sets.


The core of STXXL is an implementation of the C++ standard template library STL for external memory (out-of-core) computations, i. e., STXXL implements containers and algorithms that can process huge volumes of data that only fit on disks. While the closeness to the STL supports ease of use and compatibility with existing applications, another design priority is high performance. [more info]

The key features of STXXL are:

Current contributors: Andreas Beckmann, Johannes Singler
Past contributors: Roman Dementiev (author), Peter Sanders


Questions concerning use and development of the STXXL should be posted to the forums.

Bugs should be reported in the Bugzilla Bug Tracker


STXXL is free, open source, and available under the Boost Software License 1.0.

Platforms supported

Operating Systems Compilers Extras
  • Linux (kernel >= 2.4.18)
g++ (3.3-4.5)
icpc (9.0-12.0)
clang++ (2.8)
Boost (optional)
MCSTL (optional, only with g++ 4.2 or icpc 10.x/11.x/12.0)
libstdc++ parallel mode (optional, included with g++ 4.3+)
  • Mac OS X
  • FreeBSD
  • Windows 2000/XP/Vista/7
Microsoft Visual C++ 8.0, 9.0, 10.0 Boost (required)

Current version

Version 1.3.1 (March 10, 2011) contains memory management, disk virtualization, prefetching, and so on, as the lower layers, and as part of the higher layer (pipelined) sorting with SMP and multi-core processor support, (pipelined) scanning and containers (vectors, stacks, priority queues, maps (B+Tree), queues, deques). Currently that sums to about 35,000 lines of code.


Special features are maintained in up-to-date branches until they are merged into trunk. Until inclusion into trunk, the interface may change without further notice. Please refer to Installing from subversion for a description on how to build these branches.

Major improvements in the latest release


Current Stable Version Previous Stable Version Development Version (subversion)
  • Installation, usage, configuration:
[1.3.1] [1.3.0] [trunk]
  • API documentation/examples:
[1.3.1] [1.3.0] [trunk]
[1.3.1] tgz, zip ( [1.3.0] tgz, zip ( subversion checkout
  • Subversion repository:
[Browse] [Checkout]
[Browse] [Checkout]
[Browse] [Checkout]

Ongoing and completed projects using STXXL


A. Beckmann, R. Dementiev, J. Singler: Building A Parallel Pipelined External Memory Algorithm Library IPDPS 2009: International Parallel and Distributed Processing Symposium (May 2009, Rome, Italy) [full text]

R. Dementiev, L. Kettner, P. Sanders: STXXL: standard template library for XXL data sets, Software: Practice and Experience (August 2007, DOI: 10.1002/spe.844): [link][preprint]

D. Ajwani, R. Dementiev, U. Meyer: A Computational Study of External-Memory BFS Algorithms. SODA2006: ACM-SIAM Symposium on Discrete Algorithms (January 2006, Miami, Florida, USA) [pdf]

R. Dementiev, L. Kettner, P. Sanders: Stxxl: Standard Template Library for XXL Data Sets. ESA2005: 13th Annual European Symposium on Algorithms (October 2005, Palma de Mallorca, Spain) [pdf] (see also the extended version)

R. Dementiev, L. Kettner, P. Sanders: Stxxl: Standard Template Library for XXL Data Sets. Technical Report 2005/18, Department of Informatics, University of Karlsruhe [pdf] [html]

R. Dementiev, J. Kaerkkaeinen, J. Mehnert, P. Sanders: Better External Memory Suffix Array Construction ALENEX05: Algorithm Engineering and Experiments (January 2005, Vancouver, Canada): [pdf][input instances]

R. Dementiev, P. Sanders, D. Schultes, and J. Sibeyn: Engineering an External Memory Minimum Spanning Tree Algorithm. TSC04: 3rd IFIP International Conference on Theoretical Computer Science (August 24-26, 2004, Toulouse): [ps][pdf]

R. Dementiev, P. Sanders: Asynchronous Parallel Disk Sorting. In 15th ACM Symposium on Parallelism in Algorithms and Architectures (June 7-9, 2003, San Diego, California, USA): pages 138-148 [pdf] Logo