Kitchen::Transport::Express

Gem Version

kitchen-transport-express is a plugin for Kitchen::Transport that is designed to dramatically improve the time to converge nodes over SSH. This gem was inspired by projects like kitchen-transport-speedy and kitchen-sync.

The main improvement that kitchen-transport-express offers is it does not use native commands like tar, rsync, stfp, etc. to package and transfer the files. By using the libraries included in a chef-workstation installation to create the tarballs, kitchen-transport-express is able to provide the same performance improvement to developers who are working on either a Linux/Mac-based system or on a Windows system.

Installation

To get started, run chef gem install kitchen-transport-express.

Modify the transport section of the kitchen.yml for your Linux hosts to reference the express_ssh module.

transport:
  name: express_ssh

Verify that everything has loaded correctly with kitchen list. You should see ExpressSsh as the transport.

> kitchen list                                                                                                                                                                                                                                             ─╯
Instance            Driver  Provisioner  Verifier  Transport   Last Action    Last Error
default-linux       Oci     ChefInfra    Inspec    ExpressSsh  <Not Created>  <None>

Windows Kitchen Instances

Windows kitchen instances natively uses the WinRM::FS::Core::FileTransporter class to transfer files and it already performs the same zip-and-ship process that kitchen-transport-express offers to SSH instances. As such, there is no module in this gem for WinRM. You should continue using the built-in transport for your Windows instances.

transport:
  name: winrm

Contributing

Bug reports and pull requests are welcome on GitHub

License

Copyright 2025, Justin Steele

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.