5 unstable releases

new 0.3.0 Nov 21, 2024
0.2.0 Jan 18, 2024
0.2.0-rc0 Jan 10, 2024
0.1.0 Aug 19, 2022
0.1.0-rc0 Jan 10, 2024

#1567 in Network programming

Download history 6/week @ 2024-09-19 7/week @ 2024-09-26 3/week @ 2024-10-03

289 downloads per month
Used in rotonda

BSD-3-Clause

410KB
12K SLoC

Roto

Roto is a full programming language that is fast, safe and easy to use. It is made to integrate especially well with Rotonda, so that writing filters is as simple as possible.

Used by Rotonda, the composable, programmable routing BGP engine.

Scripts are compiled to machine code by Rotonda before they are executed. This means that they run quickly and introduce minimal latency into your system.

A strong and static type system ensures that every expression must be of a well defined, unambiguous type. Roto scripts therefore cannot crash Rotonda and can be used safely. This does not mean that the user has to specify types everywhere, most types can be inferred by the Roto compiler. When the compiler detects a mistake in your script, it will emit a friendly message.

Roto has no facilities to create loops. The reason for this is that scripts need to run only for a short time and should not slow down the application.

Read more about in the documentation.

Contributing

If you have comments, proposed changes, or would like to contribute, please open an issue in the GitHub repository. In particular, if you would like to use the crate but it is missing functionality for your use case, we would love to hear from you!

License

The roto crate is distributed under the terms of the BSD-3-clause license. See LICENSE for details.

Dependencies

~57MB
~1.5M SLoC