Split remote API info into separate doc, add example tools and clients

develop
lethosor 2020-07-19 01:13:43 -04:00
parent 1e734938ae
commit d88137b1d6
No known key found for this signature in database
GPG Key ID: 76A269552F4F58C1
3 changed files with 50 additions and 7 deletions

@ -77,11 +77,6 @@ some functions (and some entire modules) are currently only available in C++.
Remote access interface
-----------------------
DFHack supports remote access by exchanging Google protobuf messages via a TCP
socket. Both the core and plugins can define remotely accessible methods. The
``dfhack-run`` command uses this interface to invoke ordinary console commands.
Currently the supported set of requests is limited, because the developers don't
know what exactly is most useful. `remotefortressreader` provides a fairly
comprehensive interface for visualisers such as :forums:`Armok Vision <146473>`.
DFHack provides a remote access interface that external tools can connect to and
use to interact with DF. See `remote` for more information.

@ -0,0 +1,47 @@
.. _remote:
=======================
DFHack Remote Interface
=======================
DFHack provides a remote access interface that external tools can connect to and
use to interact with DF. This is implemented with `Google protobuf`_ messages
exchanged over a TCP socket (which only accepts connections from the local
machine by default). Both the core and plugins can define remotely-accessible
methods (often referred to as **RPC methods**). The RPC methods currently
available are not comprehensive, but can be extended with plugins.
.. _Google protobuf: https://developers.google.com/protocol-buffers
.. contents::
:local:
Examples
========
The `dfhack-run` command uses the RPC interface to invoke DFHack commands
(or Lua functions) externally.
Plugins that implement RPC methods include:
- `rename`
- `remotefortressreader`
- `isoworldremote`
Plugins that use the RPC API include:
- `stonesense`
Third-party tools that use the RPC API include:
- `Armok Vision <https://github.com/RosaryMala/armok-vision>`_ (:forums:`Bay12 forums thread <146473>`)
Client libraries
================
Some external libraries are available for interacting with the remote interface
from other (non-C++) languages, including:
- `RemoteClientDF-Net <https://github.com/RosaryMala/RemoteClientDF-Net>`_ for C#
- `dfhackrpc <https://github.com/BenLubar/dfhackrpc>`_ for Go
- `dfhack-remote <https://github.com/alexchandel/dfhack-remote>`_ for JavaScript

@ -15,5 +15,6 @@ These are pages relevant to people developing for DFHack.
/docs/Documentation
/docs/Structures-intro
/docs/Memory-research
/docs/Remote
/docs/Binpatches