Skip to content

Commit

Permalink
Merge pull request #41 from NLnetLabs/release-0.4.0
Browse files Browse the repository at this point in the history
Release 0.4.0

Released 2024-11-20.

Breaking changes

* Removed `MergeUpdate` trait

New

* Leaves now are HashMaps keyed on multi_uniq_ids (`mui`)
* Facilities for best (and backup) path selection for a prefix
* Facilities for iterating over and searching for values for (prefix, mui)
  combinations

Bug fixes

Other changes

* Use inetnum structs instead of routecore (Asn, Prefix)
  • Loading branch information
density215 authored Nov 20, 2024
2 parents c3d42bb + e452f3c commit 121c234
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 13 deletions.
9 changes: 4 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ documentation = "https://docs.rs/rotonda/"
homepage = "https://nlnetlabs.nl/projects/routing/rotonda/"
keywords = ["routing", "bgp"]
name = "rotonda-store"
# version = "0.4.0-rc1"
repository = "https://github.com/NLnetLabs/rotonda-store/"
version.workspace = true
edition.workspace = true
Expand All @@ -17,7 +16,7 @@ license.workspace = true
members = ["proc_macros"]

[workspace.package]
version = "0.4.0-rc1"
version = "0.4.0"
edition = "2021"
authors = ["NLnet Labs <[email protected]>"]
license = "BSD-3-Clause"
Expand All @@ -27,11 +26,11 @@ rust-version = "1.80"
crossbeam-epoch = "^0.9"
crossbeam-utils = "^0.8"

inetnum = "0.1.0"
inetnum = "0.1"
log = "^0.4"
roaring = "0.10.3"
rotonda-macros = { path = "proc_macros", version = "0.4.0-rc1" }
routecore = { version = "0.5.0-rc1", features = ["bgp", "bmp", "fsm", "serde"] }
rotonda-macros = { path = "proc_macros", version = "0.4.0" }
routecore = { version = "0.5", features = ["bgp", "bmp", "fsm", "serde"] }

ansi_term = { version = "0.12", optional = true }
csv = { version = "1", optional = true }
Expand Down
4 changes: 2 additions & 2 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Change Log

## 0.4.0-rc0
## 0.4.0

Released 2024-06-12.
Released 2024-11-20.

Breaking changes

Expand Down
18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
# `rotonda-store`

In-memory IP prefixes storage and retrieval. Part of the `Rotonda` modular BGP engine.
An In-Memory Routing Information Base (`RIB`) for IPv4 and IPv6 Prefixes. Part
of the `Rotonda` modular BGP engine.

A `rotonda-store` is a data structure that stores both IPv4 and IPv6 prefixes together with arbitrary
meta-data in a tree-bitmap[^1]. The tree-bitmap allows for fast querying of IP prefixes and their more-
and less-specific prefixes.
Although this store is geared towards storing routing information, it can
store any type of metadata for a prefix.

This crate provides a data-structure intended for single-threaded use, and a data-structure for
multi-threaded use.
It features as secondary key a u32 value, which can be used to store multiple
values for one prefix, e.g. representing different peers, or add_path routes.

The built-in tree-bitmap[^1] allows for fast querying of IP prefixes and their
more- and less-specific prefixes.

This crate provides a data-structure intended for single-threaded use, and a
data-structure for multi-threaded use.

[^1]: Read more about the data-structure in this [blog post](https://blog.nlnetlabs.nl/donkeys-mules-horses/).

0 comments on commit 121c234

Please sign in to comment.