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.