Skip to content

Conversation

@andyleejordan
Copy link
Member

@andyleejordan andyleejordan commented Dec 18, 2025

This adds a new binary dscbicep to the DSC build which is a small, self-contained Rust executable hosting a gRPC client. The methods are defined in bicep.proto from Bicep's extensibility APIs (hence the addition of protoc as a build dependency). It's actually fairly similar to the MCP server, in that it's simply invoking find/get/set/delete resource functions via dsc-lib.

Using bicep local-deploy with this is actually done through a "Bicep extension" as defined in the project bicep-types-dsc. In essence, it's an OCI artifact with two things: the type information in a big JSON file and this dscbicep binary. When all put together and hosted on an OCI registry, Bicep will auto-restore the extension and just deploy the DSC resources defined in any arbitrary set of Bicep files, handling all Bicep functionality and orchestration itself.

anthony-c-martin added a commit to Azure/bicep that referenced this pull request Jan 5, 2026
While modern Windows technically supports UDS, many libraries (like
Rust's Tokio) do not. So unfortunately is much more straightforward to
always use named pipes on Windows.

## Description

<!-- Provide a 1-2 sentence description of your change -->

## Example Usage
PowerShell/DSC#1330

## Checklist

- [x] I have read and adhere to the [contribution
guide](https://github.com/Azure/bicep/blob/main/CONTRIBUTING.md).

###### Microsoft Reviewers: [Open in
CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/Azure/bicep/pull/18712)

---------

Co-authored-by: Anthony Martin <38542602+anthony-c-martin@users.noreply.github.com>
This is imported from:
https://github.com/Azure/bicep/blob/main/src/Bicep.Local.Rpc/extension.proto

There may be a better way to sync this dependency,
but as far as I can tell they're usually just copied like this.
And tonic-prost, and tonic-prost-build...
Adds a simple build.rs script for compiling the Protobuf files.
Requires the protoc binary:

https://protobuf.dev/installation/
Since the Bicep extension is very unforgiving on the CLI.
Until Bicep will actually send this.
Upgraded to a "Resource not found" error!
Since the gRPC (and MCP) servers already start one.
Not just exe_home.
@andyleejordan andyleejordan force-pushed the bicep-gRPC branch 4 times, most recently from 9cfb0dc to 712aeed Compare January 13, 2026 22:39
@andyleejordan andyleejordan changed the title WIP: gRPC server for Bicep gRPC server for Bicep Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant