diff --git a/FUZZING.md b/FUZZING.md
new file mode 100644
index 0000000..f0f0324
--- /dev/null
+++ b/FUZZING.md
@@ -0,0 +1,78 @@
+# Fuzzing Apache Thrift
+
+This document describes the fuzzing infrastructure and goals for Apache Thrift. 
+
+We use [OSS-Fuzz](https://github.com/google/oss-fuzz) as our primary fuzzing platform to continuously test and improve the robustness of Thrift's hand-written and generated code.
+
+## Goals
+
+With fuzzing, we are focusing on testing the following key aspects across supported languages:
+
+1. Security - Testing how the generated code handles malformed/malicious input
+2. Serialization round-trip correctness - Ensuring that data stays identical if we serialize then deserialize it.
+
+## Supported Languages
+
+We currently maintain fuzzers for the following languages:
+
+- Go (needs improvement)
+
+We are working on adding fuzzers for the following languages:
+
+- c_glib
+- C++
+- Rust  
+- Swift
+- Python
+- JavaScript
+- Java/JVM (and other JVM languages)
+- netstd
+
+## Fuzzer Types
+
+For each supported language, we implement at minimum:
+
+1. **Deserializer Fuzzer**
+   - Takes raw fuzzer input and attempts to deserialize it into Thrift structures
+   - Tests handling of malformed/unexpected input
+   - Implemented for each supported protocol (Binary, Compact, JSON where available)
+
+2. **Round-Trip Fuzzer** 
+   - Deserializes fuzzer input, then re-serializes and verifies it matches
+   - Ensures data integrity through serialization cycles
+   - Tests both serialization and deserialization code paths
+
+## Building and Running the Fuzzers
+
+Each language has its own fuzzers under the `lib/<language>/test/fuzz` directory.
+The fuzzers are built when building the language-specific code (using the normal build system), as regular binaries (without fuzzing support enabled), to ensure that there are no build breakages.
+
+To ensure fuzzing can find issues as soon as possible, we will enable fuzzing support in CI once the fuzzers are stable.
+
+Currently the only convenient, formally supported build with fuzzing support enabled is the via the oss-fuzz workflow. For languages where local fuzzing is easy to do, documentation is provided along with the fuzzers.
+
+## OSS-Fuzz Integration
+
+Our fuzzers run continuously on OSS-Fuzz. To view build status:
+
+1. Visit the [OSS-Fuzz Status Dashboard](https://oss-fuzz-build-logs.storage.googleapis.com/index.html)
+2. Look for the "thrift" project
+
+The source code for the oss-fuzz build is [available upstream](https://github.com/google/oss-fuzz/tree/master/projects/thrift).
+
+We aim to improve the fuzzers through viewing the fuzz introspector reports, available [here](https://introspector.oss-fuzz.com/project-profile?project=thrift).
+
+*NB: The oss-fuzz integration will be significantly updated once all the language specific fuzzers are committed here.
+
+## Contributing to the fuzzers
+
+To contribute to the fuzzing effort - please look at https://issues.apache.org/jira/browse/THRIFT-5855 for the latest status and planned work. Once the ticket is closed,
+we would still appreciate contributions that:
+
+1. Add new fuzzers for unsupported languages
+2. Improve existing fuzzers
+3. Add test cases to corpus
+
+If you do add or change a fuzzer, please remember to make corresponding changes to the oss-fuzz build script in case they are needed.
+
+Please see CONTRIBUTING.md for general contribution guidelines.
\ No newline at end of file
diff --git a/test/FuzzTest.thrift b/test/FuzzTest.thrift
new file mode 100644
index 0000000..7a6da33
--- /dev/null
+++ b/test/FuzzTest.thrift
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+namespace cpp fuzz
+namespace java org.apache.thrift.fuzz
+namespace py fuzz
+namespace swift Fuzz
+
+// Test typedefs
+typedef i64 UserId
+typedef binary BinaryData
+
+// Test all primitive types in a compact struct
+struct BasicTypes {
+    1: bool bool_field,
+    2: i8 byte_field,
+    3: i16 i16_field,
+    4: i32 i32_field,
+    5: i64 i64_field,
+    6: double double_field,
+    7: string string_field,
+    8: binary binary_field,
+    9: uuid uuid_field
+}
+
+// Test optional/required/default requiredness
+struct Requiredness {
+    1: required i32 req_field,
+    2: optional i32 opt_field,
+    3: i32 default_field,  // default requiredness
+    4: optional string opt_with_default = "test",
+    5: required bool req_with_default = true
+}
+
+// Test field ID edge cases
+struct FieldIDTest {
+    1: i32 first,
+    100: i32 gap,
+    255: i32 medium_id,
+    32767: i32 large_id,
+}
+
+// Test empty struct
+struct EmptyStruct {}
+
+// Test union
+union TestUnion {
+    1: i32 int_field,
+    2: string string_field,
+    3: BasicTypes struct_field,
+    4: binary binary_field
+}
+
+// Test containers (but not too deeply nested)
+struct Containers {
+    1: list<i32> int_list,
+    2: set<string> string_set,
+    3: map<i32, string> int_string_map,
+    4: list<BasicTypes> struct_list,
+    5: map<string, list<i32>> nested_map,
+    6: set<UserId> typedef_set,
+}
+
+// Test enum with various values
+enum TestEnum {
+    ZERO = 0,
+    ONE = 1,
+    TWO = 2,
+    NEGATIVE = -1,
+    LARGE = 32767,
+    HEX_VALUE = 0xFF
+}
+
+// Test recursive structure
+struct RecursiveStruct {
+    1: optional RecursiveStruct & recurse,
+    2: i32 data,
+    3: optional list<RecursiveStruct> children
+}
+
+// Main test structure - kept minimal but comprehensive
+struct FuzzTest {
+    1: required BasicTypes basic,
+    2: required Requiredness required_test,
+    3: required Containers containers,
+    4: required TestUnion union_field,
+    5: optional RecursiveStruct recursive,
+    6: optional EmptyStruct empty,
+    7: optional FieldIDTest field_ids,
+    8: required TestEnum enum_field,
+    9: optional map<TestEnum, string> enum_map,
+    10: UserId user_id,
+    11: BinaryData data,
+}
\ No newline at end of file
diff --git a/test/v0.16/FuzzTestNoUuid.thrift b/test/v0.16/FuzzTestNoUuid.thrift
new file mode 100644
index 0000000..bf87740
--- /dev/null
+++ b/test/v0.16/FuzzTestNoUuid.thrift
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+namespace cpp fuzz
+namespace java org.apache.thrift.fuzz
+namespace py fuzz
+namespace swift Fuzz
+
+// Test typedefs
+typedef i64 UserId
+typedef binary BinaryData
+
+// Test all primitive types in a compact struct
+struct BasicTypes {
+    1: bool bool_field,
+    2: i8 byte_field,
+    3: i16 i16_field,
+    4: i32 i32_field,
+    5: i64 i64_field,
+    6: double double_field,
+    7: string string_field,
+    8: binary binary_field,
+}
+
+// Test optional/required/default requiredness
+struct Requiredness {
+    1: required i32 req_field,
+    2: optional i32 opt_field,
+    3: i32 default_field,  // default requiredness
+    4: optional string opt_with_default = "test",
+    5: required bool req_with_default = true
+}
+
+// Test field ID edge cases
+struct FieldIDTest {
+    1: i32 first,
+    100: i32 gap,
+    255: i32 medium_id,
+    32767: i32 large_id,
+}
+
+// Test empty struct
+struct EmptyStruct {}
+
+// Test union
+union TestUnion {
+    1: i32 int_field,
+    2: string string_field,
+    3: BasicTypes struct_field,
+    4: binary binary_field
+}
+
+// Test containers (but not too deeply nested)
+struct Containers {
+    1: list<i32> int_list,
+    2: set<string> string_set,
+    3: map<i32, string> int_string_map,
+    4: list<BasicTypes> struct_list,
+    5: map<string, list<i32>> nested_map,
+    6: set<UserId> typedef_set,
+}
+
+// Test enum with various values
+enum TestEnum {
+    ZERO = 0,
+    ONE = 1,
+    TWO = 2,
+    NEGATIVE = -1,
+    LARGE = 32767,
+    HEX_VALUE = 0xFF
+}
+
+// Do not test recursive structures here, as not all languages (e.g. c_glib) support them.
+// struct RecursiveStruct {
+//    1: optional RecursiveStruct recurse,
+//    2: i32 data,
+//    3: optional list<RecursiveStruct> children
+// }
+
+// Main test structure - kept minimal but comprehensive
+struct FuzzTest {
+    1: required BasicTypes basic,
+    2: required Requiredness required_test,
+    3: required Containers containers,
+    4: required TestUnion union_field,
+//    5: optional RecursiveStruct recursive,
+    6: optional EmptyStruct empty,
+    7: optional FieldIDTest field_ids,
+    8: required TestEnum enum_field,
+    9: optional map<TestEnum, string> enum_map,
+    10: UserId user_id,
+    11: BinaryData data,
+}
\ No newline at end of file
