Skip to content
Jeffrey Jones edited this page Jan 2, 2023 · 14 revisions

What is DCS-gRPC?

DCS-gRPC allows you to remotely interact with the scripting environment on a running DCS mission.

This allows scripters to move code, that previously had to run inside the DCS server process, outside of the process. This allows for complex code to be executed with less performance impact on the DCS server itself.

For example: Instead of having an IADS (Integrated Air Defence System) script running inside the DCS process it can do all the detection calculations externally and then only has to tell the DCS mission to turn SAM sites on and off.

Another advantage of using an RPC system is that the scripter has a much greater choice in what scripting language they use. Instead of having to use Lua they can choose to use Python, JavaScript, C#, Java, Ruby and any language supported by gRPC

Sounds nice. But is this relevant to me?

DCS-gRPC is aimed at scripters, mission makers, application developers and multiplayer server-admins who wish to add functionality to their servers and missions while limiting the performance impact or not having to learn lua. We have already implemented a number of APIs that cover a wide variety of use-cases and are adding more as time goes on. For a list of currently implemented APIs have a look at our API Documentation which is also available in the Docs folder of the download.

Adding new APIs can be done quite easily by anyone as it is 95% lua code and just a bit of Rust boilerplate code. See this commit for an example.

Are there any existing client applications?

Yes, see the Client Applications page

Documentation

Versioning Policy

While we are trying to minimise backwards-incompatible API changes we are not making any guarantees until the server reaches version 1.0.0. while it is in the 0.x version you should be prepared to rebuild the .protos and make changes to your code.

API Documentation