NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Intervaltree with Rust Back End (github.com)
athekunal 7 days ago [-]
I built a project that implemented intervaltree in Rust and exposed PyO3 bindings as a drop-in replacement for Python's native intervaltree. It is significantly faster, and I will be adding more features, such as AVL and red-black trees for balancing.
eru 4 days ago [-]
If you want balanced trees, have a look at what Rust's standard library does with BTreeMap.
jeffparsons 4 days ago [-]
And with a little work you can even use them to map ranges of keys to values in a way that's reminiscent of interval trees — e.g. https://crates.io/crates/rangemap. (Disclosure: that's my crate.)
eru 4 days ago [-]
Nice! I was only suggesting considering BTrees because they also play nice with caches, instead of the more conventional binary tree balancing mechanisms.
airstrike 4 days ago [-]
I love that crate! Kudos
Epa095 4 days ago [-]
What is the native intervaltree, is it [1] you mean? Do you also support the set operations? And can it be pickled safely?

1: https://pypi.org/project/intervaltree/

stefanka 4 days ago [-]
Will you publish it as a crate too?
jonstewart 4 days ago [-]
In C++ there’s the Boost Interval Container Library, which has an excellent API: https://www.boost.org/doc/libs/latest/libs/icl/doc/html/inde...

Unfortunately it’s implemented on top of std::set/std::map and I’ve had problems with heap blow up on large maps. This project looks like it uses 32 bit indices into a vector for backing store.

2Pacalypse- 4 days ago [-]
Pretty cool to have this in Rust, might be useful if/when I decide to move some functionality from TS -> Rust.

In the meantime, I have this impelemented in TypeScript in case anyone else will find it useful: https://github.com/ShieldBattery/node-interval-tree

croemer 4 days ago [-]
Did you intend this to be a comment on https://news.ycombinator.com/item?id=45821737 with the first line as a quote?
griffzhowl 3 days ago [-]
The comment you're linking to is younger than the comment you're replying to.

Plus, the account of the one you're linking to only has that one comment in their comment history. So I think the shenanigans lie there

everybodyknows 3 days ago [-]
It would be helpful to indicate in the README.md which variant of the data structure is used:

https://en.wikipedia.org/wiki/Interval_tree

vswaroop04 4 days ago [-]
Pretty nice to have this in Rust could come in handy if I decide to migrate some functionality from TypeScript to Rust later on.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 04:10:22 GMT+0000 (Coordinated Universal Time) with Vercel.