Kurento is a low-level platform to create WebRTC applications from scratch. You will be responsible of managing STUN/TURN servers, networking, scalability, etc. If you are new to WebRTC, we recommend using OpenVidu instead.

OpenVidu is an easier to use, higher-level, Open Source platform based on Kurento.

Client API Reference

Currently, the Kurento project provides implementations of the Kurento Protocol for two programming languages: Java and JavaScript.

In the future, additional Kurento Clients can be created, exposing the same kind of modularity in other languages such as Python, C/C++, PHP, etc.

Java Client

Kurento Java Client is a Java SE layer which consumes the Kurento API and exposes its capabilities through a simple-to-use interface based on Java POJOs representing Media Elements and Media Pipelines. Using the Kurento Java Client only requires adding the appropriate dependency to a Maven project or to download the corresponding jar into the application’s Java Classpath.

JavaScript Client

Kurento JavaScript Client is a JavaScript layer which consumes the Kurento API and exposes its capabilities to JavaScript developers. It allow to build Node.js and browser-based applications.

Kurento Js Utils

kurento-utils-js (browser/kurento-utils-js/) is a browser library that can be used to simplify creation and handling of RTCPeerConnection objects, to control the browser’s WebRTC API.


This library is not actively maintained. It was written to simplify the Kurento Tutorials and has several shortcomings for more advanced uses.

For real-world applications we recommend to avoid using this library and instead to write your JavaScript code directly against the browser’s WebRTC API.