Java Other
Latest commit 9e2f16a Feb 20, 2017 @oleg-nenashev oleg-nenashev committed on GitHub Changelog: Add the 3.5 release date

Jenkins Remoting layer

Jenkins remoting is an executable JAR, which implements communication layer in Jenkins automation server. It's being used for master <=> agent(fka "slave") and master <=> CLI communications.

In general, this library contains the bootstrap code to bridge separate JVMs into a single semi-shared space. It includes: TCP-based communication protocols, data serialization, Java classloading.

The library is reusable outside Jenkins.

Remoting versions

Currently there are two supported baselines of Remoting.

Remoting 3

Remoting 3 is a new baseline introduced in Jenkins 2.27.

Major changes:

  • Java 7 is a new target JVM, the new remoting version is not guaranteed to work properly on Java 9 and versions below Java 7
  • New JNLP4-connect protocol, which improves performance and stability compared to the JNLP3 protocol

Remoting 3 does not have full binary compatibity with Remoting 2 (see Remoting 3 Compatibility Notes).

Remoting 2

Remoting 2 is a version, which was used in Jenkins till the 2.27 release. It is not being offered in new releases of Jenkins. This version is still being maintained, because it is being used in Jenkins LTS and several other projects.

Maintenance approach:

  • The version will be maintained till at least May 2017
  • New releases may include bugfixes, security fixes and performance enhancements
  • There is no plans to introduce new features in remoting-2.x

Changelogs for Remoting 2.x releases are available here.


Remoting documentation is under development. More info will appear soon. Feel free to contribute.

User documentation:

Developer documentation:

Reporting issues

Remoting library uses the Jenkins bugtracker. Issues should be reported there in the JENKINS project with the remoting component.

See How to report an issue for more details about Jenkins issue reporting.

More info