diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 97d68b2..0be67b3 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
 {
   "git": {
-    "sha1": "1e5368c80fd4272ada7d2ed7c6be783376bb5080"
+    "sha1": "3eabf141db9d0d69961ba8a1eaf2907c7aeb8ff9"
   }
 }
diff --git a/Android.bp b/Android.bp
index 620d9f7..e180529 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,4 +1,5 @@
 // This file is generated by cargo2android.py --run --dependencies --tests.
+// Do not modify this file as changes will be overridden on upgrade.
 
 package {
     default_applicable_licenses: [
@@ -21,7 +22,6 @@
 
 rust_library_host {
     name: "libprotobuf_codegen",
-    // has rustc warnings
     crate_name: "protobuf_codegen",
     srcs: ["src/lib.rs"],
     edition: "2015",
@@ -32,11 +32,13 @@
 
 rust_test_host {
     name: "protobuf-codegen_host_test_src_lib",
-    // has rustc warnings
     crate_name: "protobuf_codegen",
     srcs: ["src/lib.rs"],
     test_suites: ["general-tests"],
     auto_gen_config: true,
+    test_options: {
+        unit_test: true,
+    },
     edition: "2015",
     rustlibs: [
         "libprotobuf",
@@ -45,7 +47,6 @@
 
 rust_binary_host {
     name: "protoc-gen-rust",
-    // has rustc warnings
     crate_name: "protoc_gen_rust",
     srcs: ["src/bin/protoc-gen-rust.rs"],
     edition: "2015",
@@ -56,4 +57,4 @@
 }
 
 // dependent_library ["feature_list"]
-//   protobuf-2.20.0
+//   protobuf-2.22.1
diff --git a/Cargo.lock b/Cargo.lock
index 900a439..8d6fde0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,14 +1,16 @@
 # This file is automatically @generated by Cargo.
 # It is not intended for manual editing.
+version = 3
+
 [[package]]
 name = "protobuf"
-version = "2.20.0"
+version = "2.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86473d5f16580f10b131a0bf0afb68f8e029d1835d33a00f37281b05694e5312"
+checksum = "1b7f4a129bb3754c25a4e04032a90173c68f85168f77118ac4cb4936e7f06f92"
 
 [[package]]
 name = "protobuf-codegen"
-version = "2.20.0"
+version = "2.22.1"
 dependencies = [
  "protobuf",
 ]
diff --git a/Cargo.toml b/Cargo.toml
index 3159edc..b594d67 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,7 +12,7 @@
 
 [package]
 name = "protobuf-codegen"
-version = "2.20.0"
+version = "2.22.1"
 authors = ["Stepan Koltsov <stepan.koltsov@gmail.com>"]
 description = "Code generator for rust-protobuf.\n\nIncludes a library and `protoc-gen-rust` binary.\n\nSee `protoc-rust` and `protobuf-codegen-pure` crates.\n"
 homepage = "https://github.com/stepancheg/rust-protobuf/"
@@ -34,4 +34,4 @@
 path = "src/bin/protobuf-bin-gen-rust-do-not-use.rs"
 test = false
 [dependencies.protobuf]
-version = "=2.20.0"
+version = "=2.22.1"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 1f02fd0..07931fd 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,6 +1,6 @@
 [package]
 name = "protobuf-codegen"
-version = "2.20.0"
+version = "2.22.1"
 authors = ["Stepan Koltsov <stepan.koltsov@gmail.com>"]
 license = "MIT"
 homepage = "https://github.com/stepancheg/rust-protobuf/"
@@ -17,7 +17,7 @@
 bench = false
 
 [dependencies]
-protobuf = { path = "../protobuf", version = "=2.20.0" }
+protobuf = { path = "../protobuf", version = "=2.22.1" }
 
 [[bin]]
 
diff --git a/METADATA b/METADATA
index 5a52570..e905992 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
   }
   url {
     type: ARCHIVE
-    value: "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-2.20.0.crate"
+    value: "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-2.22.1.crate"
   }
-  version: "2.20.0"
+  version: "2.22.1"
   license_type: NOTICE
   last_upgrade_date {
     year: 2021
-    month: 1
-    day: 7
+    month: 4
+    day: 1
   }
 }
diff --git a/src/bin/protobuf-bin-gen-rust-do-not-use.rs b/src/bin/protobuf-bin-gen-rust-do-not-use.rs
index fc66d27..a6f96ca 100644
--- a/src/bin/protobuf-bin-gen-rust-do-not-use.rs
+++ b/src/bin/protobuf-bin-gen-rust-do-not-use.rs
@@ -6,12 +6,12 @@
 use std::path::Path;
 
 use protobuf::descriptor::*;
-use protobuf::parse_from_reader;
+use protobuf::Message;
 use protobuf_codegen::*;
 
 fn write_file(bin: &str) {
     let mut is = File::open(&Path::new(bin)).unwrap();
-    let fds = parse_from_reader::<FileDescriptorSet>(&mut is as &mut dyn Read).unwrap();
+    let fds = FileDescriptorSet::parse_from_reader(&mut is as &mut dyn Read).unwrap();
 
     let file_names: Vec<String> = fds
         .get_file()
diff --git a/src/code_writer.rs b/src/code_writer.rs
index 8b53bc6..f6d4c07 100644
--- a/src/code_writer.rs
+++ b/src/code_writer.rs
@@ -58,7 +58,7 @@
         self.write_line("#![allow(clippy::all)]");
         self.write_line("");
         self.write_line("#![allow(unused_attributes)]");
-        self.write_line("#![rustfmt::skip]");
+        self.write_line("#![cfg_attr(rustfmt, rustfmt::skip)]");
         self.write_line("");
         self.write_line("#![allow(box_pointers)]");
         self.write_line("#![allow(dead_code)]");
diff --git a/src/enums.rs b/src/enums.rs
index 18dcbec..c2ce241 100644
--- a/src/enums.rs
+++ b/src/enums.rs
@@ -170,7 +170,11 @@
             w.comment("Note: you cannot use pattern matching for enums with allow_alias option");
         }
         w.derive(&derive);
-        serde::write_serde_attr(w, &self.customize, "derive(Serialize, Deserialize)");
+        serde::write_serde_attr(
+            w,
+            &self.customize,
+            "derive(::serde::Serialize, ::serde::Deserialize)",
+        );
         let ref type_name = self.type_name;
         w.expr_block(&format!("pub enum {}", type_name), |w| {
             for value in self.values_all() {
diff --git a/src/field/mod.rs b/src/field/mod.rs
index cbe99ee..842f01f 100644
--- a/src/field/mod.rs
+++ b/src/field/mod.rs
@@ -63,7 +63,7 @@
 }
 
 fn field_type_wire_type(field_type: FieldDescriptorProto_Type) -> wire_format::WireType {
-    use protobuf::stream::wire_format::*;
+    use protobuf::wire_format::*;
     match field_type {
         FieldDescriptorProto_Type::TYPE_INT32 => WireTypeVarint,
         FieldDescriptorProto_Type::TYPE_INT64 => WireTypeVarint,
diff --git a/src/lib.rs b/src/lib.rs
index 859fa5e..3458957 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -192,7 +192,7 @@
     {
         let mut w = CodeWriter::new(&mut v);
 
-        w.write_generated_by("rust-protobuf", "2.20.0");
+        w.write_generated_by("rust-protobuf", "2.22.1");
         w.write_line(&format!("//! Generated file from `{}`", file.get_name()));
         if customize.inside_protobuf != Some(true) {
             w.write_line("");
diff --git a/src/message.rs b/src/message.rs
index e39ff36..6987ce7 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -501,7 +501,11 @@
             derive.push("Debug");
         }
         w.derive(&derive);
-        serde::write_serde_attr(w, &self.customize, "derive(Serialize, Deserialize)");
+        serde::write_serde_attr(
+            w,
+            &self.customize,
+            "derive(::serde::Serialize, ::serde::Deserialize)",
+        );
         w.pub_struct(&self.type_name.to_string(), |w| {
             if !self.fields_except_oneof().is_empty() {
                 w.comment("message fields");
diff --git a/src/oneof.rs b/src/oneof.rs
index 82aba7d..e767709 100644
--- a/src/oneof.rs
+++ b/src/oneof.rs
@@ -181,7 +181,11 @@
     pub fn write_enum(&self, w: &mut CodeWriter) {
         let derive = vec!["Clone", "PartialEq", "Debug"];
         w.derive(&derive);
-        serde::write_serde_attr(w, &self.customize, "derive(Serialize, Deserialize)");
+        serde::write_serde_attr(
+            w,
+            &self.customize,
+            "derive(::serde::Serialize, ::serde::Deserialize)",
+        );
         w.pub_enum(&self.type_name.to_code(&self.customize), |w| {
             for variant in self.variants_except_group() {
                 w.write_line(&format!(
