feat: add Go example (#10)

diff --git a/MODULE.bazel b/MODULE.bazel
index 2e01155..c4586ca 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -50,3 +50,5 @@
     requirements_lock = "//examples/lang_toolchains:requirements.txt",
 )
 use_repo(pip, "pypi")
+
+bazel_dep(name = "rules_go", version = "0.48.0")
diff --git a/examples/BUILD b/examples/BUILD
index c5925bf..c827f9d 100644
--- a/examples/BUILD
+++ b/examples/BUILD
@@ -1,5 +1,6 @@
 load("@rules_proto//proto:defs.bzl", "proto_library")
 load("@rules_python//python:proto.bzl", "py_proto_library")
+load("@rules_go//proto:def.bzl", "go_proto_library")
 
 package(default_visibility = ["//visibility:public"])
 
@@ -18,3 +19,9 @@
     name = "foo_java_proto",
     deps = [":foo_proto"],
 )
+
+go_proto_library(
+    name = "foo_go_proto",
+    importpath = "example.com/foo_proto",
+    proto = ":foo_proto",
+)
diff --git a/examples/foo.proto b/examples/foo.proto
index f9fca4a..465255b 100644
--- a/examples/foo.proto
+++ b/examples/foo.proto
@@ -2,6 +2,7 @@
 
 import "google/protobuf/any.proto";
 
+option go_package = "example.com/foo_proto";
 option java_package = "proto";
 
 message Foo {
diff --git a/examples/go/BUILD b/examples/go/BUILD
new file mode 100644
index 0000000..5777ee9
--- /dev/null
+++ b/examples/go/BUILD
@@ -0,0 +1,7 @@
+load("@rules_go//go:def.bzl", "go_test")
+
+go_test(
+    name = "foo_proto_test",
+    srcs = ["foo_proto_test.go"],
+    deps = ["//examples:foo_go_proto"],
+)
diff --git a/examples/go/foo_proto_test.go b/examples/go/foo_proto_test.go
new file mode 100644
index 0000000..114188a
--- /dev/null
+++ b/examples/go/foo_proto_test.go
@@ -0,0 +1,16 @@
+package proto_test
+
+import (
+	"testing"
+
+	"example.com/foo_proto"
+)
+
+func TestFoo(t *testing.T) {
+	msg := &foo_proto.Foo{
+		Msg: "hello world",
+	}
+	if msg.Msg != "hello world" {
+		t.Fail()
+	}
+}