This library abstracts over interacting with the x3270 client. Simply provide the mainframe address and the scripting port for the client in order to immediately interact with the x3270 client programmatically.
- A
ClientSpawnerimplementation provides the means to spawn aClient.- The current version of this crate provides the x3270 implementation.
- A
CommandExecutorimplementation provides the means to run commands against the connected client. - Each
CommandBuilderimplementation utilizes a customcommand!macro to simplify and reduce duplicate code. - The
MainframeProviderstruct provides functions that utilize one or more lower-level calls to theCommandExecutor, allowing for more complex operations. - The
StreamCommandExecutoruses theCommandExecutortrait, so implementing your own and providing an instance to theMainframeProviderallows you to work with your own terminal emulator.- Create custom
CommandBuilderimplementations via thecommand!macro as needed
- Create custom
There are currently two levels of abstraction implemented in this library.
To use this lower-level abstraction, simply create an instance of TerminalConfiguration, spawn a Client with an implementation of ClientSpawner, and create a CommandExecutor. After which you will be able to execute CommandBuilder instances on the CommandExecutor that interact with the spawned client.
To use this higher-level abstraction, simply create an instance of a CommandExecutor as describe above and supply it to the new function of the MainframeProvider. With this struct you will be able to call convenient functions for interacting with the attached Client.
Example coming soon
This crate was inspired by two existing libraries from two different languages.
- Headless operation
- Windows support
- Higher automation processing layer