diff --git a/lib/nodejs/test/fuzz/README.md b/lib/nodejs/test/fuzz/README.md
new file mode 100644
index 0000000..aad48c0
--- /dev/null
+++ b/lib/nodejs/test/fuzz/README.md
@@ -0,0 +1,56 @@
+# Node.js Fuzzing README
+
+The Node.js Thrift implementation uses Jazzer.js for fuzzing. Jazzer.js is a coverage-guided, in-process fuzzer for JavaScript that integrates with libFuzzer.
+
+## Setup
+
+1. Install Jazzer.js:
+```bash
+npm install --save-dev @jazzer.js/core
+```
+
+## Available Fuzzers
+
+The Node.js Thrift implementation currently supports the following fuzz targets:
+
+* `fuzz_parse_TJSONProtocol.js` - fuzzes the deserialization of the JSON protocol
+* `fuzz_roundtrip_TJSONProtocol.js` - fuzzes the roundtrip of the JSON protocol (serialize -> deserialize -> compare)
+* `fuzz_parse_TBinaryProtocol.js` - fuzzes the deserialization of the Binary protocol
+* `fuzz_roundtrip_TBinaryProtocol.js` - fuzzes the roundtrip of the Binary protocol
+* `fuzz_parse_TCompactProtocol.js` - fuzzes the deserialization of the Compact protocol
+* `fuzz_roundtrip_TCompactProtocol.js` - fuzzes the roundtrip of the Compact protocol
+
+## Running Fuzzers
+
+To run a fuzzer, use the Jazzer.js CLI:
+
+```bash
+npx jazzer ./fuzz_parse_TJSONProtocol.js --corpus=./corpus
+```
+
+Where:
+- `--corpus` points to a directory containing seed inputs (optional)
+
+## Corpus Generation
+
+You can use the corpus generator from the Rust implementation to generate initial corpus files that can be used with these Node.js fuzzers. For JSON protocol fuzzers, ensure the corpus contains valid JSON data.
+
+## Adding New Fuzzers
+
+To add a new fuzzer:
+
+1. Create a new file in the `fuzz` directory
+2. Import the appropriate helper functions from `fuzz_common.js`
+3. Export a `fuzz` function that takes a Buffer parameter
+4. Use either `createParserFuzzer` or `createRoundtripFuzzer` with the appropriate protocol factory
+
+Example:
+```javascript
+const { createParserFuzzer } = require('./fuzz_common');
+
+module.exports.fuzz = createParserFuzzer((transport) => {
+  return new thrift.TJSONProtocol(transport);
+});
+```
+
+For more information about Jazzer.js and its options, see the [Jazzer.js documentation](https://github.com/CodeIntelligenceTesting/jazzer.js). 
\ No newline at end of file
diff --git a/lib/nodejs/test/fuzz/fuzz_common.js b/lib/nodejs/test/fuzz/fuzz_common.js
new file mode 100644
index 0000000..1eb5f79
--- /dev/null
+++ b/lib/nodejs/test/fuzz/fuzz_common.js
@@ -0,0 +1,107 @@
+const thrift = require("../../lib/thrift");
+const FuzzTest = require("./gen-nodejs/FuzzTestNoUuid_types");
+// const { FuzzedDataProvider } = require("@jazzer.js/core");
+
+/**
+ * Creates a parser fuzzer function for a specific protocol
+ * @param {Function} protocolFactory - The Thrift protocol factory function
+ * @param {boolean} [readMessageBegin=false] - Whether to call readMessageBegin before reading the test instance
+ * This is needed for protocols that do not support parsing just a struct, such as TJSONProtocol.
+ * @returns {Function} A fuzzer function that can be used with Jazzer.js
+ */
+function createParserFuzzer(protocolFactory, readMessageBegin = false) {
+  return function fuzz(data) {
+    if (data.length < 2) {
+      return;
+    }
+
+    try {
+      // Set up transport with input data
+      const transport = new thrift.TFramedTransport(data);
+      const protocol = protocolFactory(transport);
+      const testInstance = new FuzzTest.FuzzTest();
+      if (readMessageBegin) {
+        protocol.readMessageBegin();
+      }
+      testInstance[Symbol.for("read")](protocol);
+    } catch (e) {
+      if (
+        !(
+          e.name === "InputBufferUnderrunError" ||
+          e.name === "TProtocolException"
+        )
+      ) {
+        // TODO: Are other exceptions expected?
+        // console.log(e);
+      }
+    }
+  };
+}
+
+/**
+ * Creates a roundtrip fuzzer function for a specific protocol
+ * @param {Function} protocolFactory - The Thrift protocol factory function
+ * @param {boolean} [readMessageBegin=false] - Whether to call readMessageBegin before reading the test instance
+ * This is needed for protocols that do not support parsing just a struct, such as TJSONProtocol.
+ * @returns {Function} A fuzzer function that can be used with Jazzer.js
+ */
+function createRoundtripFuzzer(protocolFactory, readMessageBegin = false) {
+  return function fuzz(data) {
+    if (data.length < 2) {
+      return;
+    }
+
+    try {
+      // First deserialize using framed transport for input
+      const transport1 = new thrift.TFramedTransport(data);
+      const protocol1 = protocolFactory(transport1);
+      const testInstance = new FuzzTest.FuzzTest();
+      if (readMessageBegin) {
+        protocol1.readMessageBegin();
+      }
+      testInstance[Symbol.for("read")](protocol1);
+
+      // Then serialize using buffered transport with callback
+      let serializedData;
+      const transport2 = new thrift.TBufferedTransport(null, function (buf) {
+        serializedData = buf;
+      });
+      const protocol2 = protocolFactory(transport2);
+      testInstance[Symbol.for("write")](protocol2);
+      protocol2.flush();
+
+      if (!serializedData) {
+        throw new Error("Serialization failed - no data produced");
+      }
+
+      // Finally deserialize again and compare using framed transport
+      const transport3 = new thrift.TFramedTransport(serializedData);
+      const protocol3 = protocolFactory(transport3);
+      const deserialized = new FuzzTest.FuzzTest();
+      if (readMessageBegin) {
+        protocol3.readMessageBegin();
+      }
+      deserialized[Symbol.for("read")](protocol3);
+
+      // Compare the objects
+      if (!testInstance.equals(deserialized)) {
+        throw new Error("Roundtrip comparison failed");
+      }
+    } catch (e) {
+      if (
+        !(
+          e.name === "InputBufferUnderrunError" ||
+          e.name === "TProtocolException"
+        )
+      ) {
+        // TODO: Are other exceptions expected?
+        // console.log(e);
+      }
+    }
+  };
+}
+
+module.exports = {
+  createParserFuzzer,
+  createRoundtripFuzzer,
+};
diff --git a/lib/nodejs/test/fuzz/fuzz_parse_TBinaryProtocol.js b/lib/nodejs/test/fuzz/fuzz_parse_TBinaryProtocol.js
new file mode 100644
index 0000000..b64a971
--- /dev/null
+++ b/lib/nodejs/test/fuzz/fuzz_parse_TBinaryProtocol.js
@@ -0,0 +1,6 @@
+const thrift = require("../../lib/thrift");
+const { createParserFuzzer } = require("./fuzz_common");
+
+module.exports.fuzz = createParserFuzzer((transport) => {
+  return new thrift.TBinaryProtocol(transport);
+});
diff --git a/lib/nodejs/test/fuzz/fuzz_parse_TCompactProtocol.js b/lib/nodejs/test/fuzz/fuzz_parse_TCompactProtocol.js
new file mode 100644
index 0000000..03209b4
--- /dev/null
+++ b/lib/nodejs/test/fuzz/fuzz_parse_TCompactProtocol.js
@@ -0,0 +1,6 @@
+const thrift = require("../../lib/thrift");
+const { createParserFuzzer } = require("./fuzz_common");
+
+module.exports.fuzz = createParserFuzzer((transport) => {
+  return new thrift.TCompactProtocol(transport);
+});
diff --git a/lib/nodejs/test/fuzz/fuzz_parse_TJSONProtocol.js b/lib/nodejs/test/fuzz/fuzz_parse_TJSONProtocol.js
new file mode 100644
index 0000000..cea20b5
--- /dev/null
+++ b/lib/nodejs/test/fuzz/fuzz_parse_TJSONProtocol.js
@@ -0,0 +1,6 @@
+const thrift = require("../../lib/thrift");
+const { createParserFuzzer } = require("./fuzz_common");
+
+module.exports.fuzz = createParserFuzzer((transport) => {
+  return new thrift.TJSONProtocol(transport);
+}, true);
diff --git a/lib/nodejs/test/fuzz/fuzz_roundtrip_TBinaryProtocol.js b/lib/nodejs/test/fuzz/fuzz_roundtrip_TBinaryProtocol.js
new file mode 100644
index 0000000..a88153c
--- /dev/null
+++ b/lib/nodejs/test/fuzz/fuzz_roundtrip_TBinaryProtocol.js
@@ -0,0 +1,6 @@
+const thrift = require("../../lib/thrift");
+const { createRoundtripFuzzer } = require("./fuzz_common");
+
+module.exports.fuzz = createRoundtripFuzzer((transport) => {
+  return new thrift.TBinaryProtocol(transport);
+});
diff --git a/lib/nodejs/test/fuzz/fuzz_roundtrip_TCompactProtocol.js b/lib/nodejs/test/fuzz/fuzz_roundtrip_TCompactProtocol.js
new file mode 100644
index 0000000..eee4457
--- /dev/null
+++ b/lib/nodejs/test/fuzz/fuzz_roundtrip_TCompactProtocol.js
@@ -0,0 +1,6 @@
+const thrift = require("../../lib/thrift");
+const { createRoundtripFuzzer } = require("./fuzz_common");
+
+module.exports.fuzz = createRoundtripFuzzer((transport) => {
+  return new thrift.TCompactProtocol(transport);
+});
diff --git a/lib/nodejs/test/fuzz/fuzz_roundtrip_TJSONProtocol.js b/lib/nodejs/test/fuzz/fuzz_roundtrip_TJSONProtocol.js
new file mode 100644
index 0000000..8d09d5f
--- /dev/null
+++ b/lib/nodejs/test/fuzz/fuzz_roundtrip_TJSONProtocol.js
@@ -0,0 +1,6 @@
+const thrift = require("../../lib/thrift");
+const { createRoundtripFuzzer } = require("./fuzz_common");
+
+module.exports.fuzz = createRoundtripFuzzer((transport) => {
+  return new thrift.TJSONProtocol(transport);
+}, true);
