Open-source graph database, built for real-time streaming data, compatible with Neo4j.
cyphergraphgraph-algorithmsgraph-analysisgraph-databasekafkakafka-streamsnosqlopencypherstream-processingstreaming-data
Summary: In order to enhance C++ metaprogramming capabilities, a custom preprocessing step is added before compilation. C++ code may be mixed with Lisp code in order to generate a complete C++ source code. The mechanism is hooked into cmake. To notify cmake of .lcp files, `add_lcp` function in src/CMakeLists.txt needs to be invoked. The main executable entry point is in tools/lcp, while the source code is in src/lisp/lcp.lisp The main goal of LCP is to auto generate class serialization code and member variable getter functions. This should now be significantly less error prone, since you cannot forget to serialize a member variable through this mechanism. Future uses should be generating other repeating code, such as `Clone` methods or perhaps some debug information. .lcp files may contain mixed C++ code (enclosed in #>cpp ... cpp<# blocks) with Common Lisp code. NOTE: With great power comes great responsibility. Lisp metaprogramming capabilities are incredibly powerful. To keep the sanity of the team intact, use Lisp preprocessing only when *really* necessary. Reviewers: buda, mferencevic, msantl, dgleich, ipaljak, mculinovic, mtomic Reviewed By: mtomic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1361 |
||
---|---|---|
cmake | ||
config | ||
customers | ||
docs | ||
experimental | ||
libs | ||
poc | ||
release | ||
src | ||
tests | ||
tools | ||
.arcconfig | ||
.clang-format | ||
.gdbinit | ||
.gitignore | ||
.ycm_extra_conf.py | ||
apollo_archives.py | ||
apollo_archives.yaml | ||
apollo_build.yaml | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
Doxyfile | ||
Doxylogo.png | ||
init | ||
README.md |
memgraph
Memgraph is an ACID compliant high performance transactional distributed in-memory graph database featuring runtime native query compiling, lock free data structures, multi-version concurrency control and asynchronous IO.
dependencies
Memgraph can be compiled using any modern c++ compiler. It mostly relies on the standard template library, however, some things do require external libraries.
Some code contains linux-specific libraries and the build is only supported on a 64 bit linux kernel.
- linux
- clang 3.8 (good c++11 support, especially lock free atomics)
- antlr (compiler frontend)
- cppitertools
- fmt format
- google benchmark
- google test
- glog
- gflags