microsoft/pdblister

Add a server mode for pdblister

Opened this issue · 0 comments

We should investigate the usefulness of adding a server mode to pdblister, such that we will listen for JSON requests on stdin and respond to them on stdout.

For example, someone could request that we download a PDB (or return an existing one) via the following flow (-->: stdin, <--: stdout):

--> {"id": 0, "req": "download", "type": "pdb", "name": "abc.pdb", "hash": "ABC123456789", "age": 0}
<-- {"id": 0, "req": "progress", "percent": 50}
<-- {"id": 0, "req": "progress", "percent": 90}
<-- {"id": 0, "req": "download", "status": "success", "path": "C:\Symbols\abc.pdb\ABC123456789\abc.pdb"}

This would make pdblister a useful tool for non-Rust languages as well, since any language can launch a program and speak JSON.
This will also allow me to lazily sidestep having to do a non-async implementation for Rust libraries that wish to maintain a minimal build profile.