Skip to main content
Version: DEV



  • CPU: >= 4 cores, x86_64 with AVX2, or aarch64
  • RAM: >= 16 GB
  • Disk: >= 50 GB
  • OS: Linux with glibc >=2.17

Deploy Infinity database

Deploy Infinity using Docker on Linux x86_64 and MacOS x86_64

sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity
docker pull infiniflow/infinity:nightly
docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly

Deploy Infinity using binary package on Linux x86_64

You can download the binary package (deb, rpm, or tgz) for your respective host operating system from The prebuilt packages are compatible with Linux distributions based on glibc 2.17 or later, for example, RHEL 7, Debian 8, Ubuntu 14.04.


sudo rpm -i infinity-0.2.0-dev-x86_64.rpm
sudo systemctl start infinity


sudo dpkg -i infinity-0.2.0-dev-x86_64.deb
sudo systemctl start infinity

🛠️ Build from Source

See Build from Source.

Install a Python client

infinity-sdk requires Python 3.10+.

pip3 install infinity-sdk==0.2.0.dev1

Import necessary modules

import infinity
import infinity.index as index
from infinity.common import REMOTE_HOST
from infinity.common import ConflictType

Connect to the remote server

infinity_obj = infinity.connect(REMOTE_HOST)

Get a database

db = infinity_obj.get_database("default_db")

Create a table

# Drop my_table if it already exists
db.drop_table("my_table", ConflictType.Ignore)
# Create a table named "my_table"
table = db.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})

Insert two records

table.insert([{"num": 1, "body": "unnecessary and harmful", "vec": [1.0, 1.2, 0.8, 0.9]}])
table.insert([{"num": 2, "body": "Office for Harmful Blooms", "vec": [4.0, 4.2, 4.3, 4.5]}])
res = table.output(["*"]).knn("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2).to_pl()

💡 For more information about the Python API, see the Python API Reference.