A command-line socket client with REST API for testing WebSocket, Socket.IO, TCP, and Unix socket servers using REST clients.
iola is a command-line socket client that exposes a REST API for interacting with socket servers. It allows developers to send and receive messages via HTTP endpoints, making it possible to test WebSocket, Socket.IO, TCP, and Unix socket connections using tools like Postman or Insomnia. The tool bridges the gap between REST-based testing workflows and real-time communication protocols.
Developers and QA engineers who need to test, debug, or automate interactions with socket-based APIs, especially those already using REST clients for API testing.
iola eliminates the need for specialized socket testing tools by providing a familiar REST interface, enabling seamless integration into existing API testing workflows and leveraging advanced features of modern REST clients.
🔄 iola: Command-line socket client with REST API.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports WebSocket, Socket.IO, TCP, and Unix sockets, allowing developers to test diverse real-time APIs with a single tool, as shown in the CLI commands.
Exposes HTTP endpoints for sending/receiving messages, enabling use of advanced features in Postman or Insomnia, such as collections and variables, per the philosophy section.
Logs all socket events to the console in real-time and provides Swagger UI at `/swagger` for interactive API exploration, simplifying debugging workflows.
Supports binary data with multiple encodings (ASCII, UTF8, Base64, Hex) via the `--binary-encoding` option, making it easier to work with non-textual protocols.
Only compatible with Socket.IO v4, as noted in the README, which can break integration with servers using older or newer versions without updates.
For TCP and Unix sockets, sync mode opens a new connection per request, adding overhead and latency that undermines performance for repetitive testing.
Missing support for common protocols like UDP or MQTT, restricting its use in broader IoT or messaging ecosystems where these are prevalent.