diff --git a/common/buf/readv_posix.go b/common/buf/readv_posix.go
index 22f6d3ab..3cf9ad14 100644
--- a/common/buf/readv_posix.go
+++ b/common/buf/readv_posix.go
@@ -1,4 +1,5 @@
 // +build !windows
+// +build !wasm
 
 package buf
 
diff --git a/common/buf/readv_reader.go b/common/buf/readv_reader.go
index b624b1b7..926a1c7f 100644
--- a/common/buf/readv_reader.go
+++ b/common/buf/readv_reader.go
@@ -1,3 +1,5 @@
+// +build !wasm
+
 package buf
 
 import (
diff --git a/common/buf/readv_reader_wasm.go b/common/buf/readv_reader_wasm.go
new file mode 100644
index 00000000..4b775bc6
--- /dev/null
+++ b/common/buf/readv_reader_wasm.go
@@ -0,0 +1,12 @@
+package buf
+
+import (
+	"io"
+	"syscall"
+)
+
+const useReadv = false
+
+func NewReadVReader(reader io.Reader, rawConn syscall.RawConn) Reader {
+	panic("not implemented")
+}
diff --git a/common/buf/readv_test.go b/common/buf/readv_test.go
index 4a6575a0..8f8eb2b5 100644
--- a/common/buf/readv_test.go
+++ b/common/buf/readv_test.go
@@ -1,3 +1,5 @@
+// +build !wasm
+
 package buf_test
 
 import (
diff --git a/common/buf/readv_windows.go b/common/buf/readv_windows.go
index 88975f07..a812ee04 100644
--- a/common/buf/readv_windows.go
+++ b/common/buf/readv_windows.go
@@ -1,5 +1,3 @@
-// +build windows
-
 package buf
 
 import (
diff --git a/transport/internet/domainsocket/dial.go b/transport/internet/domainsocket/dial.go
index c0db02c0..52c962b6 100644
--- a/transport/internet/domainsocket/dial.go
+++ b/transport/internet/domainsocket/dial.go
@@ -1,4 +1,5 @@
 // +build !windows
+// +build !wasm
 
 package domainsocket
 
diff --git a/transport/internet/domainsocket/listener.go b/transport/internet/domainsocket/listener.go
index e02e3a29..0bfd6020 100644
--- a/transport/internet/domainsocket/listener.go
+++ b/transport/internet/domainsocket/listener.go
@@ -1,4 +1,5 @@
 // +build !windows
+// +build !wasm
 
 package domainsocket