diff --git a/.github/workflows/samples-rust.yaml b/.github/workflows/samples-rust.yaml
new file mode 100644
index 00000000000..1d0aa745017
--- /dev/null
+++ b/.github/workflows/samples-rust.yaml
@@ -0,0 +1,31 @@
+name: Samples Rust
+
+on:
+ push:
+ paths:
+ - 'samples/client/petstore/rust/**'
+ - 'samples/server/petstore/rust-server/**'
+ pull_request:
+ paths:
+ - 'samples/client/petstore/rust/**'
+ - 'samples/server/petstore/rust-server/**'
+
+jobs:
+ build:
+ name: Build Rust
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ sample:
+ # these folders contain sub-projects of rust clients, servers
+ - samples/client/petstore/rust/
+ - samples/server/petstore/rust-server/
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ - name: Build
+ working-directory: ${{ matrix.sample }}
+ run: cargo build
diff --git a/pom.xml b/pom.xml
index 3d7e16cf6d3..58ffb5e74b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1170,8 +1170,10 @@
samples/client/petstore/c
-->
samples/client/petstore/rust
+ samples/client/petstore/rust/hyper/petstore
samples/client/petstore/rust/reqwest/petstore
samples/client/petstore/rust/reqwest/petstore-async
+ samples/client/petstore/rust/reqwest/petstore-async-middleware
samples/client/petstore/python-legacy
samples/client/petstore/python-asyncio
diff --git a/samples/client/petstore/rust/reqwest/petstore-async-middleware/pom.xml b/samples/client/petstore/rust/reqwest/petstore-async-middleware/pom.xml
new file mode 100644
index 00000000000..f4ba9e854be
--- /dev/null
+++ b/samples/client/petstore/rust/reqwest/petstore-async-middleware/pom.xml
@@ -0,0 +1,47 @@
+
+ 4.0.0
+ org.openapitools
+ RustReqwestAsyncMiddlewareClientTests
+ pom
+ 1.0-SNAPSHOT
+ Rust Reqwest Async Middleware Petstore Client
+
+
+
+ maven-dependency-plugin
+
+
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.2.1
+
+
+ bundle-test
+ integration-test
+
+ exec
+
+
+ cargo
+
+ build
+
+
+
+
+
+
+
+
+