Crates.io | roto |
lib.rs | roto |
version | 0.3.0 |
source | src |
created_at | 2022-08-19 08:48:42.633718 |
updated_at | 2024-11-21 13:17:08.413086 |
description | strongly-typed, compiled language for Rotonda |
homepage | https://www.nlnetlabs.nl/projects/routing/rotonda/ |
repository | https://github.com/NLnetLabs/roto/ |
max_upload_size | |
id | 648616 |
size | 653,372 |
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.
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!
The roto crate is distributed under the terms of the BSD-3-clause license. See LICENSE for details.