Home - pwdlugosz/Rye GitHub Wiki

Welcome to the Rye wiki!

Rye is a light weight data manipulation language. It's designed to crunch numbers quickly and perform many common queries, while supporting other complex analytical operations:

  • Basic Query Operations: select/read, aggregates (SQL group by), joins, updates and deletes.
  • Other data operations like sorting.
  • Matrix algebra including add, subtract, multiplication, transposition, and inversion (dot product and determinate available in C# only, for now...)
  • Lambda expressions and differential calculus.
  • Basic control flow operations like for loops, while loops, if statements, variable assignment and declarations.
  • Dynamic code execution.

Rye allows users to write native C# functions and sub-routines/methods that fit cleanly into Rye's ecosystem and parser, in something called a structure. Currently, there are two structures built in Rye:

  • File: has basic file and IO support
  • Data: allows for basic table manipulation

Future versions of Rye will include support for:

  • Complex data mining models, such as multiple regression, generalized linear models, non-linear regression, clustering, and neural networks.
  • Common probability distributions.
  • A 'system' structure that allows the user to access basic Rye kernel operations and Rye system settings.
  • An aggregate algorithm that relies on presorted data (current uses a sea of hash tables).

Much of the source code for the above enhancements already exists from other projects.

If you're interested in contributing, below is my current wish list:

  • Implementing a hash-table based joining algorithm
  • Adapting Rye's current nested loop and sort merge join algorithms to allow for more than two join operations in a single query.
  • Tune up the sorting algorithm for tables, specifically the n x (n - 1) extent merging step.
  • Implement a parallel sorting algorithm for tables.