Welcome to Jina!#

Jina is a framework that empowers anyone to build cross-modal and multi-modal[*] applications on the cloud. It uplifts a PoC into a production-ready service. Jina handles the infrastructure complexity, making advanced solution engineering and cloud-native technologies accessible to every developer.

[*] Example cross-modal application: DiscoArt, DALL·E Flow; example multi-modal services: CLIP-as-service, Jina Now.

Applications built with Jina enjoy the following features out-of-the-box:

🌌 Universal

  • Build applications that deliver fresh insights from multiple data types such as text, image, audio, video, 3D mesh, PDF with Jina AI’s DocArray.

  • Support all mainstream deep learning frameworks.

  • Polyglot gateway that supports gRPC, Websockets, HTTP, GraphQL protocols with TLS.


  • Intuitive design pattern for high-performance microservices.

  • Scaling at ease: set replicas, sharding in one line.

  • Duplex streaming between client and server.

  • Async and non-blocking data processing over dynamic flows.

☁️ Cloud-native

  • Seamless Docker container integration: sharing, exploring, sandboxing, versioning and dependency control via Jina Hub.

  • Fast deployment to Kubernetes, Docker Compose and Jina Cloud.

  • Full observability via Prometheus and Grafana.

🍱 Ecosystem

  • Improved engineering efficiency thanks to the Jina AI ecosystem, so you can focus on innovating with the data applications you build.

Jina in Jina AI neural search ecosystem


Make sure that you have Python 3.7+ installed on Linux/MacOS/Windows.

pip install -U jina
conda install jina -c conda-forge
docker pull jinaai/jina:latest

Now that you’re set up, let’s dive into more of how Jina works and how to build great apps.


Join Us#

Jina is backed by Jina AI and licensed under Apache-2.0. We are actively hiring AI engineers, solution engineers to build the next neural search ecosystem in open source.


In order to help Jina build better solutions for the community, Jina collects some usage statistics when using it. It is impossible for Jina or any other party to identify users with the data collected, you can see easily in the code which data is being collected by checking the code in _telemetry_run_in_thread().

The data collected is:

  • Jina version

  • DocArray version

  • Other packages versions

  • A random unique user identifier

  • A random unique session identifier

  • Event emitting the statistics. Flow start or Runtime start

If you’d like to opt out of usage statistics, make sure to add the optout-telemetry argument to the different Flows and Executors or set the JINA_OPTOUT_TELEMETRY environment variable.

Index | Module Index