---
title: Official Download
---

## Apache Kvrocks™ Downloads

Apache Kvrocks™ is released as a source artifact. We are pleased to announce our release as below.

### Source Releases

````mdx-code-block
import Releases from "../src/components/Releases";

<Releases/>
````

Choose a source distribution in the *tar* format, and [verify](https://www.apache.org/dyn/closer.cgi#verify) using the corresponding *pgp* signature (using the committer file in [KEYS](https://downloads.apache.org/kvrocks/KEYS)).  If you cannot do that, the *sha512* hash file may be used to check that the download has completed OK.

For fast downloads, current source distributions are hosted on mirror servers; older source distributions are in the
[archive](https://archive.apache.org/dist/kvrocks/). If a download from a mirror fails, retry, and the second download will likely succeed.

### Docker Images

Every released version of Apache Kvrocks™ has a corresponding [official Docker image on Docker Hub](https://hub.docker.com/r/apache/kvrocks), which includes prebuilt binaries for both amd64 and arm64 architecture. You can obtain it via:

```shell
docker pull apache/kvrocks:$VERSION_NUMBER
```
