• Stars
    star
    169
  • Rank 217,850 (Top 5 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 9 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fast generic radix trie implemented in Rust

Rust Radix Trie

Windows Build Status

This is a Radix Trie implementation in Rust, building on the lessons learnt from TrieMap and Sequence Trie. You can read about my experience implementing this data structure here.

Help Wanted, Enquire Within

Since writing this code I haven't used it in anger (or production) so it is no doubt in need of some maintenance, testing and optimisation love. If you would like to help out, try solving an open issue, optimise something, or just have a poke around! Thanks :)

Features

  • Compressed nodes. Common key prefixes are stored only once.
  • Trie-specific methods to look-up closest ancestors and descendants.
  • Key Generic. Any type that can be serialised as a vector of bytes can be used as a key.
  • Safe - no unsafe code.

Documentation

https://docs.rs/radix_trie/

Usage

Available on Crates.io as radix_trie.

Just add radix_trie to the dependencies section of your Cargo.toml, like so:

radix_trie = "0.2"

Contributors

Made by:

License

MIT License. Copyright © Michael Sproul and contributors 2015-present.

More Repositories

1

aus_senate

Implementation of the Australian senate voting algorithm
Rust
27
star
2

rust_sequence_trie

Ergonomic trie data structure
Rust
24
star
3

autozfs

Auto-mount ZFS external hard drives (macOS)
C
17
star
4

bullshit

Simple horoscope generator in Python
Python
13
star
5

xuino

Command-line Arduino toolkit [deprecated]
Python
12
star
6

rust-nightly-archlinux

Unmaintained PKGBUILD generator for Rust
Python
11
star
7

dblib-linear

Formalisation of the linear lambda calculus in Coq
Coq
10
star
8

butter_db

Key-value database built on btrfs [UNUSABLE]
Rust
8
star
9

slashing-proofs

Formal proofs about Ethereum slashing protection strategies
Isabelle
7
star
10

gossip

Simulation of gossip with consensus
Rust
7
star
11

bulk-pay-aus

Make batch payments from Australian banks
Python
6
star
12

colourcat

Tool for distinctly colouring numbers, hashes and identifiers in log files
Rust
6
star
13

blockdreamer

Ethereum block hallucinator
Rust
6
star
14

rust_nibble_vec

A data structure for storing a sequence of nibbles
Rust
6
star
15

ens-search

Find awesome Ethereum names with ease!
Haskell
4
star
16

nixos-desktop

Attempted NixOS configuration for my desktop...
Nix
4
star
17

postgres-alloc-rs

Use the PostgreSQL allocator from Rust!
Rust
4
star
18

eth2-scripts

Scripts for Eth2 node admin + analysis
Python
4
star
19

ssz-hs

Ethereum SSZ library for Haskell
Haskell
3
star
20

dummy_builder

No-op block builder for testing
Rust
3
star
21

arduino-power-monitor

Monitor household power usage with an Arduino.
JavaScript
3
star
22

safe-tla

TLA+ model of some SAFE network stuff
TLA
3
star
23

PizzaML

Hopefully a Rust-like syntax for ML
Rust
3
star
24

optimising-attestation-packing-satalia

Joint project with Satalia on attestation packing https://lighthouse-blog.sigmaprime.io/optimising-attestation-packing.html
Rust
2
star
25

festivus

FESTIVUS - a data server for the rest of us! [inactive]
Rust
2
star
26

beacon_http_bench

Tools for benchmarking the HTTP API of an Ethereum beacon node
2
star
27

bletchley

Old school cryptography
Python
2
star
28

music-drm-game-theory

Game theory project on DRM in the music industry.
TeX
2
star
29

antifa

Build a Merkle tree for your files
Rust
2
star
30

aus_senate_site

Aus Senate Simulator 3000
Rust
2
star
31

usydrc

Sydney Uni exam results checker (now obsolete)
Python
2
star
32

household-power

Household power monitoring reborn with Rust + Raspberry Pi.
Rust
2
star
33

ethereum-share-house

Ethereum smart contract for sharehouse expense-sharing
Solidity
2
star
34

rust-simpl-db

Rusty single file database
Rust
2
star
35

swap-or-not-shuffle-isabelle

Formalisation of the swap-or-not shuffle used in Ethereum 2.0
Isabelle
2
star
36

.files

Configuation files and symlink deploy script
Vim Script
2
star
37

tpg-analyser

Scraper for TPG mobile usage data.
Haskell
1
star
38

bad-redirects

Mucking about with infinite redirects to break things.
Rust
1
star
39

blog

Crappy Old Blog (dull)
Ruby
1
star
40

radix_trie_benchmarks

Radix Trie Benchmarks for Rust, Go and Haskell.
Rust
1
star
41

rust-ffi-example

Minimal example for calling Rust from C
Makefile
1
star
42

xmlproc

Simple XML processor
C
1
star
43

card_shuffling

A simulation of some card shuffling algorithms for 500
Python
1
star
44

background_iter

[WIP] Poll an iterator to completion in parallel on a background thread
Rust
1
star
45

alertbot

Python
1
star
46

hiatus

Experimental concurrency debugging library for Rust
Rust
1
star
47

security-jam

Poppin' phresh shells.
C
1
star
48

blockgauge

Measure blockprint's accuracy with synthetic blocks
Rust
1
star
49

ewok

Simulator for a distributed fuzzy ordering algorithm
Rust
1
star
50

skarn

Selective File Sync
Rust
1
star
51

mordhelp

Mordheim helper app
Elm
1
star