Tardis-machine is a fast, locally installable server with built-in local caching, that uses lower level HTTP API under the hood. It can be installed via NPM or run as a Docker Container (image available on Docker hub).
Locally cached data is stored on disk in compressed form (GZIP) and decompressed on demand when reading the data.
Tardis-machine provides on-demand tick-level market data replay API from any moment in time in exchange's WebSocket data format both via streaming HTTP and WebSocket endpoints. In many cases existing exchanges WebSocket clients can be used to consume historical message stream as if it was real-time one.
Detailed and most up to date documentation & installation instructions can be found on GitHub.
Example below illustrates tardis-machine executing inline from code and official Node.js BitMEX WebSocket client communicating with it and consuming historical data as if it was real-time stream - it can as well run as CLI installed via NPM and as Docker container.