aboutsummaryrefslogtreecommitdiff
blob: c7a8c6eea6fb00788db3b5791fe66161e4824c2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
<pkgmetadata>
	<maintainer type="person">
		<email>lssndrbarbieri@gmail.com</email>
		<name>Alessandro Barbieri</name>
	</maintainer>
	<maintainer type="person">
			<email>denis7774@gmail.com</email>
			<name>Denis Reva</name>
	</maintainer>
	<longdescription lang="en">
Overview

This repository aims to provide a set of excellent hash map implementations, as well as a btree alternative to std::map and std::set, with the following characteristics:

Header only: nothing to build, just copy the parallel_hashmap directory to your project and you are good to go.

drop-in replacement for std::unordered_map, std::unordered_set, std::map and std::set

Compiler with C++11 support required, C++14 and C++17 APIs are provided (such as try_emplace)

Very efficient, significantly faster than your compiler's unordered map/set or Boost's, or than sparsepp

Memory friendly: low memory usage, although a little higher than sparsepp

Supports heterogeneous lookup

Easy to forward declare: just include phmap_fwd_decl.h in your header files to forward declare Parallel Hashmap containers [note: this does not work currently for hash maps with pointer keys]

Dump/load feature: when a flat hash map stores data that is std::trivially_copyable, the table can be dumped to disk and restored as a single array, very efficiently, and without requiring any hash computation. This is typically about 10 times faster than doing element-wise serialization to disk, but it will use 10% to 60% extra disk space. See examples/serialize.cc. (flat hash map/set only)

Automatic support for boost's hash_value() method for providing the hash function (see examples/hash_value.h). Also default hash support for std::pair and std::tuple.

natvis visualization support in Visual Studio (hash map/set only)
	</longdescription>
	<upstream>
		<bugs-to>https://github.com/greg7mdp/parallel-hashmap/issues</bugs-to>
		<remote-id type="github">greg7mdp/parallel-hashmap</remote-id>
	</upstream>
</pkgmetadata>