Skip to content

agserm/Current

This branch is 86 commits behind C5T/Current:master.

Folders and files

NameName
Last commit message
Last commit date
May 25, 2017
Jul 4, 2017
Jun 26, 2017
Sep 7, 2016
Jun 15, 2017
Jan 10, 2017
Mar 10, 2017
Mar 10, 2017
Jun 15, 2017
Aug 12, 2016
Feb 19, 2017
Jul 20, 2017
May 18, 2017
Jul 13, 2017
May 30, 2017
Jun 4, 2017
Jun 27, 2017
Mar 25, 2017
Jul 13, 2017
Sep 7, 2016
Dec 13, 2016
Jul 14, 2017
Feb 3, 2017
Feb 3, 2017
Jul 11, 2017
Jun 4, 2017
Apr 18, 2016
Jun 8, 2016
Feb 1, 2017

Repository files navigation

Current CI

The type system used in Current framework.

The language to define continuous data pipelines.

Structured, append-only, immutable data persistence layer with publish-subscribe.

An efficient convex optimization engine.

Low-level compact persistence layer with 1+ GB/s throughput.

An extensible event collecting HTTP server.

HTTP server and client, efficient in-memory message queue, persistence layer, streaming API interface.

JSON and binary serialization, string manipulation library, command line flags library, and other core pieces.

Storage layer with super easy to use in-memory data views and Sherlock-based persistence.

Compact and autogenerated C++ framework to evolve objects from one type hierarchy into another type hierarchy while remaining fully within the strong typing paradigm.

Contribution

Welcome, contributors! Please start here by signing the CLA.

Quick Start

Install the development dependencies

  • nasm for FnCAS.
    • macOS: brew install nasm
  • geninfo from lcov for coverage report.
    • macOS: brew install lcov
  • clang-format-3.6 for code formatting (make indent).
    • macOS: Only clang-format-3.8 is available via Homebrew: brew install [email protected] && ln -s /usr/local/bin/clang-format-3.6 /usr/local/opt/[email protected]/bin/clang-format (pretend we've got 3.6)

Clean the output of the previous builds

make clean

Run the tests

Builds and runs all the tests as a single binary. Slow, eats up tons of CPU, but measures coverage. Consider make individual_tests or make test within individual directories to run the subset of tests.

make test

Builds and runs the tests for each module separately:

make individual_tests

Builds and runs the tests for one of the modules (e.g. Blocks/HTTP):

( cd Blocks/HTTP && make test )

Verify the code

"Builds" all header files individually, twice each header file, and "links" these pairs together. Ensures no symbols are exported, and the ODR will not be violated when linking together two objects, each of which is independently using Current.

make check

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.6%
  • Shell 1.3%
  • Objective-C++ 0.8%
  • JavaScript 0.6%
  • TypeScript 0.5%
  • Objective-C 0.4%
  • Other 0.8%