We are for a few projects. We've been using them for over a year and have been impressed. We have 10s millions of items in there with lots of daily inserts/deletions etc. There's been a couple of gotchas but generally it is quite predictable and scalable.
We use 768 dimensional vectors for our items with several other payload filters (e.g. language). Performance has been good and I think the qdrant team focus on the right features without creeping into other areas.
I didn't post this, but I coincidentally tried testing numerous open source vector databases during the last week, including building them from source, testing them for my use case, etc. For my needs, and thinking longterm, I think Qdrant is the best option. Their docs are clear and it was easy to build from source using Rust (it takes about 30 minutes, but it just works) and the binaries are relatively small and portable. It was also easy to build the latest dev version, which has built in authentication (due to a bounty claimed two weeks ago). There's a new official Javascript client (for use from nodejs), which builds on "openapi" and seems to work well, if you're using nodejs as a client instead of Python.
My overall impression of Qdrant is that it's clean and uncluttered compared to other options, development is very open, and the devs are technically very capable. The docs are clear and to the point, without a bunch of extra nonsense getting in the way. It's also easy to try out for free via their hosted cloud.
Android and ChromiumOS are likely the most trustable computing platforms out there; doubly so for Android running on Pixels. If you don't prefer the ROM Google ships with, you can flash GrapheneOS or CalyxOS and relock the bootloader.
Pixels have several protections in place:
- Hardware root of trust: This is the anchor on which the entire TCB (trusted computing base) is built.
- Cryptographic verification (verified boot) of all the bootloaders (IPL, SPL), the kernels (Linux and LittleKernel), and the device tree.
- Integrity verification (dm-verity) of the contents of the ROM (/system partition which contains privileged OEM software).
- File-based Encryption (fscrypt) of user data (/data partition where installed apps and data go) and adopted external storage (/sdcard); decrypted only with user credentials.
- Running blobs traditionally run in higher exception levels (like ARM EL2) in a restricted, mutually untrusted VM.
- Continued modularization of core ROM components so that they could be updated just like any other Android app, ie without having to update the entire OS.
- Heavily sandboxed userspace, where each app has very limited view of the rest of the system, typically gated by Android-enforced permissions, seccomp filters, selinux policies, posix ACLs, and linux capabilities.
- Private Compute Core for PII (personally identifiable information) workloads. And Trusty Execution Environment for high-trust workloads.
This is not to say Android is without exploits, but it seems it is most further ahead of the mainstream OSes. This is not a particularly high bar because of closed-source firmware and baseband, but this ties in generally with the need to trust the hardware vendors themselves (see point #1).
You can definitely get some incredibly elegant and fast solutions using Rust. Check out timvisee's AoC 2020 [0]. It honestly had a significant impact on my personal style.
We use 768 dimensional vectors for our items with several other payload filters (e.g. language). Performance has been good and I think the qdrant team focus on the right features without creeping into other areas.