Rubygem-train

Jul 20, 2023

Transport interface to talk to different backends

Train lets you talk to your local or remote operating systems and APIs with a unified interface.

It allows you to

  • execute commands via run_command
  • interact with files via file
  • identify the target operating system via os
  • authenticate to API-based services and treat them like a platform

Train supports

  • Local execution
  • SSH
  • WinRM
  • Docker
  • Mock for testing and debugging
  • AWS as an API
  • Azure as an API
  • VMware via PowerCLI
  • Habitat


Checkout these related ports:
  • Zyre - Framework for proximity-based peer-to-peer applications
  • Zsync - File transfer program
  • Zmap - Internet scanner
  • Zillion - Distributed computing project
  • Zerotier - Network virtualization everywhere
  • Zebra-server - Z39.50/SR server software
  • Yptransitd - Replacement for nss_ldap
  • Yggdrasil - Experimental end-to-end encrypted self-arranging IPv6 network
  • Yconalyzer - TCP Traffic Analyzer
  • Yazproxy - Powerful general purpose Z39.50/SRW/SRU proxy
  • Yaz - Z39.50/SR client and API library
  • Yaz++ - C++ toolkit for development of Z39.50v3 clients and servers
  • Yate - Yet Another Telephony Engine
  • Yaph - Yet Another Proxy Hunter (proxy scanner)
  • Yami4 - Messaging library for distributed systems