Git Product home page Git Product logo

styx's Introduction

Styx logo

Styx is the foundation of a graph-based data flow framework for any kind of data processing. It is used heavily within Balder a data flow framework for property graph models on .NET/Mono. A process graph is composed of a set of process vertices connected to one another by a set of communication edges. Styx supports the splitting, merging, transformation and concurrent processing of data from input to output. It comes in three flavors:

Usage

Pipes

The Pipes subproject is a lazy data flow framework.
Pipes visualization

var List = new List<Int32>() { 0, 1, 2, 2, 3, 4, 4, 5, 6, 2, 7, 8, 9, 1 }.
    DuplicateFilter().
    RangeFilter(2, 7).
    Skip(2).
    RandomFilter(0.25).
    ToList();
Arrows

The Arrows subproject is an event-based data flow framework.
Arrows visualization

Sensors

The Sensors subproject is an data source framework for all kinds of data emitting objects.
Sensors visualization

The following code will create an instance of a sensor producing a sinus wave. This could be used as a mockup for a voltage or current sensoring application - even when the frequency is very low here ;)
The WithTimestamp extension method will modify the output of the sensor to include the timestamp when the 'measurement' took place.
The ToActiveSensor extension method will transform the sensor from an lazy sensor to an event-sending sensor.
The SkipArrow extension method will skip the first event.
The ActionArrow extention method will call the given delegate for every received arrow/event.

new SinusSensor("/dev/sinus") {
    Frequency            = 0.05,
    Amplitude            = 240,
    MeasurementIntervall = TimeSpan.FromSeconds(1)
}.
WithTimestamp().
ToActiveSensor(Autostart: true).
SkipArrow(1).
ActionArrow(measurement => {
    Console.WriteLine(measurement.Timestamp + "\t" + measurement.Value);
});

You will see the current timestamp and value of a slow sinus wave on the console output.

Help and Documentation

Additional help and much more examples can be found in the Wiki.
News and updates can also be found on twitter by following: @ahzf.

Installation

The installation of Styx is very straightforward.
Just check out or download its sources and all its dependencies:

License and your contribution

Styx is released under the Apache License 2.0. For details see the LICENSE file.
To suggest a feature, report a bug or general discussion: http://github.com/Vanaheimr/Styx/issues
If you want to help or contribute source code to this project, please use the same license.
The coding standards can be found by reading the code ;)

Acknowledgments

Styx is a reimplementation of the Pipes library for Java provided by Tinkerpop.
Please read the NOTICE file for further credits.

styx's People

Contributors

ahzf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.