Skip to content

Platform Compatibility

Nick Nassiri edited this page Jun 20, 2024 · 3 revisions

Neighborly Platform Compatibility

Neighborly is designed for versatility and cross-platform compatibility, ensuring efficient operation across various hardware and operating systems. This document outlines the supported platforms and key considerations.

Supported Platforms

Neighborly can operate as both a server and on-machine library on these desktop/server OSes:

  • Linux kernel 5.8 on Ubuntu, Debian, CentOS, and RHEL.
  • FreeBSD v14
  • macOS 12.0 "Monterey"
  • Windows 10

On-Device Libraries

You can use Neighborly in your Xamarin or MAUI application as a Nuget package.

  • iOS 14 or higher is required.
  • Android 7.0 (API 24) or higher is required.
  • Xbox (untested)
  • PS4 and Nintendo Switch via Unity (untested)

Hardware Architectures

  • x86: Broad compatibility with desktops, laptops, and servers. 64-bit only.
  • ARM: Supports mobile devices, tablets, and ARM-based servers.

Key Considerations

Performance Optimization

  • Threading Model: Background indexing is disabled on mobile devices. To ensure your index is current after making database changes, call VectorDatabase.RebuildSearchIndexesAsync().
  • Filesystem Sparse Support: Neighborly creates a sparse file for storing vectors. Most modern file systems support sparse files. Here's a non-exhaustive list of supported file systems: ZFS, ext2, ext3, ext4, XFS, ReFS, APFS, and NTFS. Most notably, FAT/FAT16/FAT32/exFAT is not supported.

Conclusion

Neighborly ensures broad compatibility across servers and mobile devices, leveraging platform strengths for optimal performance and security. For installation and configuration details, refer to the Neighborly documentation.

Clone this wiki locally