Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Annoy came out of Spotify, and they just announced their successor library Voyager [1] last week [2].

[1]: https://github.com/spotify/voyager [2]: https://engineering.atspotify.com/2023/10/introducing-voyage...



Amazing, thanks for the reference!

The biggest immediate useful difference that I see is that Annoy uses read-only index files (from the docs: "you can not add more items once the tree has been created" [0]), while Voyager allows you to call `.add_item` at any time (I just pip installed to double check and yes -- it's great).

[0] https://github.com/spotify/annoy#summary-of-features


The great thing about Annoy is that you can write the index to disk and thus do big data work on tiny workers at the edge. I've never really seen anything else do the same.


Oh yeah, Annoy is definitely mmap'ed i.e. you can use the index without loading the index file into memory. And that's very useful.

As far as I can see, Voyager requires you to load the index into memory and doesn't (yet?) do mmap. Which... would make sense since you can change the data after loading the index. So, Voyager index files are fully loaded in memory..? Do I have this right?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: