roto

Crates.ioroto
lib.rsroto
version0.3.0
sourcesrc
created_at2022-08-19 08:48:42.633718
updated_at2024-11-21 13:17:08.413086
descriptionstrongly-typed, compiled language for Rotonda
homepagehttps://www.nlnetlabs.nl/projects/routing/rotonda/
repositoryhttps://github.com/NLnetLabs/roto/
max_upload_size
id648616
size653,372
Jasper den Hertog (density215)

documentation

https://docs.rs/roto/

README

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.

Commit count: 970

cargo fmt