%% date:: [[2023-03-17]] %% # [[Experimental modules in k6]] [docs](https://k6.io/docs/javascript-api/k6-experimental/) Experimental modules in [[k6 (tool)|k6]] are separate [[Extensions for k6 using xk6|extensions]] that enjoy preferential treatment in that they can be imported from a k6 script and used without requiring the custom binary build process that extensions typically do. <iframe width="560" height="315" src="https://www.youtube.com/embed/0-dfzCUV7m4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> ## History of experimental modules - First introduced in [v0.40](https://github.com/grafana/k6/releases/tag/v0.40.0) - [v0.42](https://github.com/grafana/k6/releases/tag/v0.42.0) introduced more features for [[WebSockets]] - [v0.43](https://github.com/grafana/k6/releases/tag/v0.43.0) introduced the [[k6 browser]] and [[k6 tracing]] modules ## Why experimental modules? - Extensions require you to build a custom binary of k6, which presupposes knowledge of [[Go]] or willingness to learn. - Some extensions are considered high-value or widely adopted enough such that it's easier for most users to be able to import them. - Some extensions are faithfully maintained and sophisticated enough such that the maintenance burden on the k6 team is low. ## Current experimental modules - [[k6 redis]] ([docs](https://k6.io/docs/javascript-api/k6-experimental/redis/)): for interacting with [[Redis]] - [[k6 websockets]] ([docs](https://k6.io/docs/javascript-api/k6-experimental/websockets/)): for using the [[WebSockets]] protocol - [[k6 timers]] ([docs](https://k6.io/docs/javascript-api/k6-experimental/timers/)): for setting timeouts and repeated intervals for functions - [[k6 tracing]] ([docs](https://k6.io/docs/javascript-api/k6-experimental/tracing/)): inspired by [xk6-distributed-tracing](https://github.com/grafana/xk6-distributed-tracing); implements [[Distributed tracing]] - [[k6 browser]] ([docs](https://k6.io/docs/javascript-api/k6-browser/)): previously [xk6-browser](https://github.com/grafana/xk6-browser); implements [[Browser-based testing]] ## Future experimental modules - JavaScript WebCrypto module ### Wishlist experimental modules - [[HTTP-3]] - [[Apache Kafka|Kafka]] - [[TCP]] - [[DNS]] - [[xk6-kubernetes]] - [[xk6-disruptor]]