diff --git a/changelog.d/14965.misc b/changelog.d/14965.misc
new file mode 100644
index 0000000000000000000000000000000000000000..3ae0537d966540c82078a3bea682f19c6bed5d5f
--- /dev/null
+++ b/changelog.d/14965.misc
@@ -0,0 +1 @@
+Allow running `cargo` without the `extension-module` option.
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
index cffaa5b51b94d45875998054dc33bf26560b1b77..09e2bba5e5c2c43d47ab8a45838d187605a5f462 100644
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@ -23,13 +23,17 @@ name = "synapse.synapse_rust"
 anyhow = "1.0.63"
 lazy_static = "1.4.0"
 log = "0.4.17"
-pyo3 = { version = "0.17.1", features = ["extension-module", "macros", "anyhow", "abi3", "abi3-py37"] }
+pyo3 = { version = "0.17.1", features = ["macros", "anyhow", "abi3", "abi3-py37"] }
 pyo3-log = "0.7.0"
 pythonize = "0.17.0"
 regex = "1.6.0"
 serde = { version = "1.0.144", features = ["derive"] }
 serde_json = "1.0.85"
 
+[features]
+extension-module = ["pyo3/extension-module"]
+default = ["extension-module"]
+
 [build-dependencies]
 blake2 = "0.10.4"
 hex = "0.4.3"