diff --git a/cmd/protoc-gen-go-grpc/internal_gengogrpc/grpc.go b/cmd/protoc-gen-go-grpc/internal_gengogrpc/grpc.go
index fd14a31..abc9d21 100644
--- a/cmd/protoc-gen-go-grpc/internal_gengogrpc/grpc.go
+++ b/cmd/protoc-gen-go-grpc/internal_gengogrpc/grpc.go
@@ -10,7 +10,7 @@
 	"strconv"
 	"strings"
 
-	"google.golang.org/protobuf/protogen"
+	"google.golang.org/protobuf/compiler/protogen"
 
 	descriptorpb "google.golang.org/protobuf/types/descriptor"
 )
diff --git a/cmd/protoc-gen-go-grpc/main.go b/cmd/protoc-gen-go-grpc/main.go
index 0d47c14..9cfc159 100644
--- a/cmd/protoc-gen-go-grpc/main.go
+++ b/cmd/protoc-gen-go-grpc/main.go
@@ -8,7 +8,7 @@
 
 import (
 	"google.golang.org/protobuf/cmd/protoc-gen-go-grpc/internal_gengogrpc"
-	"google.golang.org/protobuf/protogen"
+	"google.golang.org/protobuf/compiler/protogen"
 )
 
 func main() {
diff --git a/cmd/protoc-gen-go/internal_gengo/main.go b/cmd/protoc-gen-go/internal_gengo/main.go
index 801590b..37bdc3d 100644
--- a/cmd/protoc-gen-go/internal_gengo/main.go
+++ b/cmd/protoc-gen-go/internal_gengo/main.go
@@ -16,9 +16,9 @@
 	"unicode"
 	"unicode/utf8"
 
+	"google.golang.org/protobuf/compiler/protogen"
 	"google.golang.org/protobuf/internal/encoding/tag"
 	"google.golang.org/protobuf/internal/fieldnum"
-	"google.golang.org/protobuf/protogen"
 	"google.golang.org/protobuf/reflect/protoreflect"
 
 	descriptorpb "google.golang.org/protobuf/types/descriptor"
@@ -711,7 +711,7 @@
 	return "// Deprecated: Do not use."
 }
 
-// TODO: Remove this. This was added to aid jsonpb, but jsonpb does this work
+// TODO: Remove this. This was added to aid protojson, but protojson does this work
 // through the use of protobuf reflection now.
 func genWellKnownType(g *protogen.GeneratedFile, ptr string, ident protogen.GoIdent, desc protoreflect.Descriptor) {
 	if wellKnownTypes[desc.FullName()] {
diff --git a/cmd/protoc-gen-go/internal_gengo/reflect.go b/cmd/protoc-gen-go/internal_gengo/reflect.go
index e0a2eb7..d5a8a47 100644
--- a/cmd/protoc-gen-go/internal_gengo/reflect.go
+++ b/cmd/protoc-gen-go/internal_gengo/reflect.go
@@ -10,8 +10,8 @@
 	"strings"
 	"unicode/utf8"
 
+	"google.golang.org/protobuf/compiler/protogen"
 	"google.golang.org/protobuf/proto"
-	"google.golang.org/protobuf/protogen"
 	"google.golang.org/protobuf/reflect/protoreflect"
 
 	descriptorpb "google.golang.org/protobuf/types/descriptor"
diff --git a/cmd/protoc-gen-go/main.go b/cmd/protoc-gen-go/main.go
index 3b8179d..53770da 100644
--- a/cmd/protoc-gen-go/main.go
+++ b/cmd/protoc-gen-go/main.go
@@ -11,7 +11,7 @@
 	"flag"
 
 	gengo "google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo"
-	"google.golang.org/protobuf/protogen"
+	"google.golang.org/protobuf/compiler/protogen"
 )
 
 func main() {
diff --git a/protogen/names.go b/compiler/protogen/names.go
similarity index 100%
rename from protogen/names.go
rename to compiler/protogen/names.go
diff --git a/protogen/names_test.go b/compiler/protogen/names_test.go
similarity index 100%
rename from protogen/names_test.go
rename to compiler/protogen/names_test.go
diff --git a/protogen/protogen.go b/compiler/protogen/protogen.go
similarity index 99%
rename from protogen/protogen.go
rename to compiler/protogen/protogen.go
index ceaece0..41500e9 100644
--- a/protogen/protogen.go
+++ b/compiler/protogen/protogen.go
@@ -28,7 +28,7 @@
 	"strconv"
 	"strings"
 
-	"google.golang.org/protobuf/encoding/textpb"
+	"google.golang.org/protobuf/encoding/prototext"
 	"google.golang.org/protobuf/internal/fieldnum"
 	"google.golang.org/protobuf/internal/scalar"
 	"google.golang.org/protobuf/proto"
@@ -1115,7 +1115,7 @@
 		}
 	}
 
-	b, err := textpb.Marshal(info)
+	b, err := prototext.Marshal(info)
 	if err != nil {
 		return "", err
 	}
diff --git a/protogen/protogen_test.go b/compiler/protogen/protogen_test.go
similarity index 100%
rename from protogen/protogen_test.go
rename to compiler/protogen/protogen_test.go
diff --git a/encoding/bench_test.go b/encoding/bench_test.go
index 0341b19..5a54130 100644
--- a/encoding/bench_test.go
+++ b/encoding/bench_test.go
@@ -11,8 +11,8 @@
 
 	jsonpbV1 "github.com/golang/protobuf/jsonpb"
 	protoV1 "github.com/golang/protobuf/proto"
-	"google.golang.org/protobuf/encoding/jsonpb"
-	"google.golang.org/protobuf/encoding/textpb"
+	"google.golang.org/protobuf/encoding/protojson"
+	"google.golang.org/protobuf/encoding/prototext"
 	pref "google.golang.org/protobuf/reflect/protoreflect"
 
 	tpb "google.golang.org/protobuf/internal/testprotos/test"
@@ -145,7 +145,7 @@
 		if *benchV1 {
 			protoV1.MarshalTextString(m)
 		} else {
-			_, err := textpb.MarshalOptions{Indent: "  "}.Marshal(m)
+			_, err := prototext.MarshalOptions{Indent: "  "}.Marshal(m)
 			if err != nil {
 				b.Fatal(err)
 			}
@@ -155,7 +155,7 @@
 
 func BenchmarkTextDecode(b *testing.B) {
 	m := makeProto()
-	in, err := textpb.MarshalOptions{Indent: "  "}.Marshal(m)
+	in, err := prototext.MarshalOptions{Indent: "  "}.Marshal(m)
 	if err != nil {
 		b.Fatal(err)
 	}
@@ -166,7 +166,7 @@
 		if *benchV1 {
 			err = protoV1.UnmarshalText(string(in), m)
 		} else {
-			err = textpb.Unmarshal(m, in)
+			err = prototext.Unmarshal(m, in)
 		}
 		if err != nil {
 			b.Fatal(err)
@@ -182,7 +182,7 @@
 			jsm := &jsonpbV1.Marshaler{Indent: "  "}
 			_, err = jsm.MarshalToString(m)
 		} else {
-			_, err = jsonpb.MarshalOptions{Indent: "  "}.Marshal(m)
+			_, err = protojson.MarshalOptions{Indent: "  "}.Marshal(m)
 		}
 		if err != nil {
 			b.Fatal(err)
@@ -192,7 +192,7 @@
 
 func BenchmarkJSONDecode(b *testing.B) {
 	m := makeProto()
-	out, err := jsonpb.MarshalOptions{Indent: "  "}.Marshal(m)
+	out, err := protojson.MarshalOptions{Indent: "  "}.Marshal(m)
 	if err != nil {
 		b.Fatal(err)
 	}
@@ -203,7 +203,7 @@
 		if *benchV1 {
 			err = jsonpbV1.UnmarshalString(string(out), m)
 		} else {
-			err = jsonpb.Unmarshal(m, out)
+			err = protojson.Unmarshal(m, out)
 		}
 		if err != nil {
 			b.Fatal(err)
diff --git a/encoding/jsonpb/jsonpb.go b/encoding/jsonpb/jsonpb.go
new file mode 100644
index 0000000..43c28b5
--- /dev/null
+++ b/encoding/jsonpb/jsonpb.go
@@ -0,0 +1,14 @@
+// Package jsonpb is deprecated.
+package jsonpb
+
+import "google.golang.org/protobuf/encoding/protojson"
+
+var (
+	Marshal   = protojson.Marshal
+	Unmarshal = protojson.Unmarshal
+)
+
+type (
+	MarshalOptions   = protojson.MarshalOptions
+	UnmarshalOptions = protojson.UnmarshalOptions
+)
diff --git a/encoding/jsonpb/bench_test.go b/encoding/protojson/bench_test.go
similarity index 75%
rename from encoding/jsonpb/bench_test.go
rename to encoding/protojson/bench_test.go
index 3dcc5e0..595c908 100644
--- a/encoding/jsonpb/bench_test.go
+++ b/encoding/protojson/bench_test.go
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package jsonpb_test
+package protojson_test
 
 import (
 	"testing"
 
-	"google.golang.org/protobuf/encoding/jsonpb"
+	"google.golang.org/protobuf/encoding/protojson"
 	knownpb "google.golang.org/protobuf/types/known"
 )
 
@@ -15,7 +15,7 @@
 	input := []byte(`"-123456789.123456789s"`)
 
 	for i := 0; i < b.N; i++ {
-		err := jsonpb.Unmarshal(&knownpb.Duration{}, input)
+		err := protojson.Unmarshal(&knownpb.Duration{}, input)
 		if err != nil {
 			b.Fatal(err)
 		}
diff --git a/encoding/jsonpb/decode.go b/encoding/protojson/decode.go
similarity index 99%
rename from encoding/jsonpb/decode.go
rename to encoding/protojson/decode.go
index 1712bf6..b6c056e 100644
--- a/encoding/jsonpb/decode.go
+++ b/encoding/protojson/decode.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package jsonpb
+package protojson
 
 import (
 	"encoding/base64"
diff --git a/encoding/jsonpb/decode_test.go b/encoding/protojson/decode_test.go
similarity index 97%
rename from encoding/jsonpb/decode_test.go
rename to encoding/protojson/decode_test.go
index 0410d53..75b28d3 100644
--- a/encoding/jsonpb/decode_test.go
+++ b/encoding/protojson/decode_test.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package jsonpb_test
+package protojson_test
 
 import (
 	"bytes"
@@ -10,7 +10,7 @@
 	"testing"
 
 	protoV1 "github.com/golang/protobuf/proto"
-	"google.golang.org/protobuf/encoding/jsonpb"
+	"google.golang.org/protobuf/encoding/protojson"
 	"google.golang.org/protobuf/encoding/testprotos/pb2"
 	"google.golang.org/protobuf/encoding/testprotos/pb3"
 	pimpl "google.golang.org/protobuf/internal/impl"
@@ -53,7 +53,7 @@
 func TestUnmarshal(t *testing.T) {
 	tests := []struct {
 		desc         string
-		umo          jsonpb.UnmarshalOptions
+		umo          protojson.UnmarshalOptions
 		inputMessage proto.Message
 		inputText    string
 		wantMessage  proto.Message
@@ -1065,7 +1065,7 @@
 		wantErr: true,
 	}, {
 		desc:         "required fields partially set with AllowPartial",
-		umo:          jsonpb.UnmarshalOptions{AllowPartial: true},
+		umo:          protojson.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.Requireds{},
 		inputText: `{
   "reqBool": false,
@@ -1110,7 +1110,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field with AllowPartial",
-		umo:          jsonpb.UnmarshalOptions{AllowPartial: true},
+		umo:          protojson.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText: `{
   "optNested": {}
@@ -1138,7 +1138,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field in repeated with AllowPartial",
-		umo:          jsonpb.UnmarshalOptions{AllowPartial: true},
+		umo:          protojson.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText: `{
   "rptNested": [
@@ -1176,7 +1176,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field in map with AllowPartial",
-		umo:          jsonpb.UnmarshalOptions{AllowPartial: true},
+		umo:          protojson.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText: `{
   "strToNested": {
@@ -1208,7 +1208,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field in oneof with AllowPartial",
-		umo:          jsonpb.UnmarshalOptions{AllowPartial: true},
+		umo:          protojson.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText: `{
   "oneofNested": {}
@@ -1976,7 +1976,7 @@
 		wantMessage:  &knownpb.Any{},
 	}, {
 		desc: "Any with non-custom message",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2005,7 +2005,7 @@
 		}(),
 	}, {
 		desc: "Any with empty embedded message",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2013,13 +2013,13 @@
 		wantMessage:  &knownpb.Any{TypeUrl: "foo/pb2.Nested"},
 	}, {
 		desc:         "Any without registered type",
-		umo:          jsonpb.UnmarshalOptions{Resolver: preg.NewTypes()},
+		umo:          protojson.UnmarshalOptions{Resolver: preg.NewTypes()},
 		inputMessage: &knownpb.Any{},
 		inputText:    `{"@type": "foo/pb2.Nested"}`,
 		wantErr:      true,
 	}, {
 		desc: "Any with missing required error",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.PartialRequired{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2046,7 +2046,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with partial required and AllowPartial",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			AllowPartial: true,
 			Resolver:     preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.PartialRequired{})),
 		},
@@ -2073,7 +2073,7 @@
 		}(),
 	}, {
 		desc: "Any with invalid UTF8",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2097,7 +2097,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with BoolValue",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.BoolValue{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2118,7 +2118,7 @@
 		}(),
 	}, {
 		desc: "Any with Empty",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Empty{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2131,7 +2131,7 @@
 		},
 	}, {
 		desc: "Any with missing Empty",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Empty{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2141,7 +2141,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with StringValue containing invalid UTF8",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.StringValue{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2163,7 +2163,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with Int64Value",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Int64Value{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2184,7 +2184,7 @@
 		}(),
 	}, {
 		desc: "Any with invalid Int64Value",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Int64Value{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2195,7 +2195,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with invalid UInt64Value",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.UInt64Value{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2206,7 +2206,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with Duration",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Duration{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2227,7 +2227,7 @@
 		}(),
 	}, {
 		desc: "Any with Value of StringValue",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Value{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2249,7 +2249,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with Value of NullValue",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Value{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2270,7 +2270,7 @@
 		}(),
 	}, {
 		desc: "Any with Struct",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(
 				pimpl.Export{}.MessageTypeOf(&knownpb.Struct{}),
 				pimpl.Export{}.MessageTypeOf(&knownpb.Value{}),
@@ -2319,7 +2319,7 @@
 		}(),
 	}, {
 		desc:         "Any with missing @type",
-		umo:          jsonpb.UnmarshalOptions{},
+		umo:          protojson.UnmarshalOptions{},
 		inputMessage: &knownpb.Any{},
 		inputText: `{
   "value": {}
@@ -2334,7 +2334,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with duplicate @type",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(
 				pimpl.Export{}.MessageTypeOf(&pb2.Nested{}),
 				pimpl.Export{}.MessageTypeOf(&knownpb.StringValue{}),
@@ -2349,7 +2349,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with duplicate value",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.StringValue{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2361,7 +2361,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with unknown field",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -2373,7 +2373,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with embedded type containing Any",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(
 				pimpl.Export{}.MessageTypeOf(&pb2.KnownTypes{}),
 				pimpl.Export{}.MessageTypeOf(&knownpb.Any{}),
@@ -2411,7 +2411,7 @@
 		wantErr: true,
 	}, {
 		desc: "well known types as field values",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Empty{})),
 		},
 		inputMessage: &pb2.KnownTypes{},
@@ -2490,7 +2490,7 @@
 		},
 	}, {
 		desc:         "DiscardUnknown: regular messages",
-		umo:          jsonpb.UnmarshalOptions{DiscardUnknown: true},
+		umo:          protojson.UnmarshalOptions{DiscardUnknown: true},
 		inputMessage: &pb3.Nests{},
 		inputText: `{
   "sNested": {
@@ -2504,7 +2504,7 @@
 		wantMessage: &pb3.Nests{SNested: &pb3.Nested{}},
 	}, {
 		desc:         "DiscardUnknown: repeated",
-		umo:          jsonpb.UnmarshalOptions{DiscardUnknown: true},
+		umo:          protojson.UnmarshalOptions{DiscardUnknown: true},
 		inputMessage: &pb2.Nests{},
 		inputText: `{
   "rptNested": [
@@ -2520,7 +2520,7 @@
 		},
 	}, {
 		desc:         "DiscardUnknown: map",
-		umo:          jsonpb.UnmarshalOptions{DiscardUnknown: true},
+		umo:          protojson.UnmarshalOptions{DiscardUnknown: true},
 		inputMessage: &pb3.Maps{},
 		inputText: `{
   "strToNested": {
@@ -2536,7 +2536,7 @@
 		},
 	}, {
 		desc:         "DiscardUnknown: extension",
-		umo:          jsonpb.UnmarshalOptions{DiscardUnknown: true},
+		umo:          protojson.UnmarshalOptions{DiscardUnknown: true},
 		inputMessage: &pb2.Extensions{},
 		inputText: `{
   "[pb2.opt_ext_nested]": {
@@ -2550,13 +2550,13 @@
 		}(),
 	}, {
 		desc:         "DiscardUnknown: Empty",
-		umo:          jsonpb.UnmarshalOptions{DiscardUnknown: true},
+		umo:          protojson.UnmarshalOptions{DiscardUnknown: true},
 		inputMessage: &knownpb.Empty{},
 		inputText:    `{"unknown": "something"}`,
 		wantMessage:  &knownpb.Empty{},
 	}, {
 		desc:         "DiscardUnknown: Any without type",
-		umo:          jsonpb.UnmarshalOptions{DiscardUnknown: true},
+		umo:          protojson.UnmarshalOptions{DiscardUnknown: true},
 		inputMessage: &knownpb.Any{},
 		inputText: `{
   "value": {"foo": "bar"},
@@ -2565,7 +2565,7 @@
 		wantMessage: &knownpb.Any{},
 	}, {
 		desc: "DiscardUnknown: Any",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			DiscardUnknown: true,
 			Resolver:       preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
@@ -2579,7 +2579,7 @@
 		},
 	}, {
 		desc: "DiscardUnknown: Any with Empty",
-		umo: jsonpb.UnmarshalOptions{
+		umo: protojson.UnmarshalOptions{
 			DiscardUnknown: true,
 			Resolver:       preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Empty{})),
 		},
diff --git a/encoding/jsonpb/doc.go b/encoding/protojson/doc.go
similarity index 81%
rename from encoding/jsonpb/doc.go
rename to encoding/protojson/doc.go
index 99cf2dd..00ea2fe 100644
--- a/encoding/jsonpb/doc.go
+++ b/encoding/protojson/doc.go
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Package jsonpb marshals and unmarshals protocol buffer messages as JSON
+// Package protojson marshals and unmarshals protocol buffer messages as JSON
 // format. It follows the guide at
 // https://developers.google.com/protocol-buffers/docs/proto3#json.
 //
 // This package produces a different output than the standard "encoding/json"
 // package, which does not operate correctly on protocol buffer messages.
-package jsonpb
+package protojson
diff --git a/encoding/jsonpb/encode.go b/encoding/protojson/encode.go
similarity index 99%
rename from encoding/jsonpb/encode.go
rename to encoding/protojson/encode.go
index 1d353b7..bd0ee3d 100644
--- a/encoding/jsonpb/encode.go
+++ b/encoding/protojson/encode.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package jsonpb
+package protojson
 
 import (
 	"encoding/base64"
diff --git a/encoding/jsonpb/encode_test.go b/encoding/protojson/encode_test.go
similarity index 97%
rename from encoding/jsonpb/encode_test.go
rename to encoding/protojson/encode_test.go
index 6043209..c652118 100644
--- a/encoding/jsonpb/encode_test.go
+++ b/encoding/protojson/encode_test.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package jsonpb_test
+package protojson_test
 
 import (
 	"bytes"
@@ -13,7 +13,7 @@
 
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp/cmpopts"
-	"google.golang.org/protobuf/encoding/jsonpb"
+	"google.golang.org/protobuf/encoding/protojson"
 	"google.golang.org/protobuf/internal/encoding/pack"
 	"google.golang.org/protobuf/internal/encoding/wire"
 	pimpl "google.golang.org/protobuf/internal/impl"
@@ -67,7 +67,7 @@
 func TestMarshal(t *testing.T) {
 	tests := []struct {
 		desc    string
-		mo      jsonpb.MarshalOptions
+		mo      protojson.MarshalOptions
 		input   proto.Message
 		want    string
 		wantErr bool // TODO: Verify error message substring.
@@ -749,7 +749,7 @@
 		wantErr: true,
 	}, {
 		desc: "required fields not set with AllowPartial",
-		mo:   jsonpb.MarshalOptions{AllowPartial: true},
+		mo:   protojson.MarshalOptions{AllowPartial: true},
 		input: &pb2.Requireds{
 			ReqBool:     scalar.Bool(false),
 			ReqSfixed64: scalar.Int64(0),
@@ -793,7 +793,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field with AllowPartial",
-		mo:   jsonpb.MarshalOptions{AllowPartial: true},
+		mo:   protojson.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			OptNested: &pb2.NestedWithRequired{},
 		},
@@ -821,7 +821,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field in repeated with AllowPartial",
-		mo:   jsonpb.MarshalOptions{AllowPartial: true},
+		mo:   protojson.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			RptNested: []*pb2.NestedWithRequired{
 				&pb2.NestedWithRequired{},
@@ -853,7 +853,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field in map with AllowPartial",
-		mo:   jsonpb.MarshalOptions{AllowPartial: true},
+		mo:   protojson.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			StrToNested: map[string]*pb2.NestedWithRequired{
 				"fail": &pb2.NestedWithRequired{},
@@ -877,7 +877,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field in oneof with AllowPartial",
-		mo:   jsonpb.MarshalOptions{AllowPartial: true},
+		mo:   protojson.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			Union: &pb2.IndirectRequired_OneofNested{
 				OneofNested: &pb2.NestedWithRequired{},
@@ -1531,7 +1531,7 @@
 		want:  `{}`,
 	}, {
 		desc: "Any with non-custom message",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		input: func() proto.Message {
@@ -1559,7 +1559,7 @@
 }`,
 	}, {
 		desc: "Any with empty embedded message",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		input: &knownpb.Any{TypeUrl: "foo/pb2.Nested"},
@@ -1568,12 +1568,12 @@
 }`,
 	}, {
 		desc:    "Any without registered type",
-		mo:      jsonpb.MarshalOptions{Resolver: preg.NewTypes()},
+		mo:      protojson.MarshalOptions{Resolver: preg.NewTypes()},
 		input:   &knownpb.Any{TypeUrl: "foo/pb2.Nested"},
 		wantErr: true,
 	}, {
 		desc: "Any with missing required error",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.PartialRequired{})),
 		},
 		input: func() proto.Message {
@@ -1599,7 +1599,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with partial required and AllowPartial",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			AllowPartial: true,
 			Resolver:     preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.PartialRequired{})),
 		},
@@ -1625,7 +1625,7 @@
 }`,
 	}, {
 		desc: "Any with invalid UTF8",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		input: func() proto.Message {
@@ -1648,7 +1648,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with invalid value",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		input: &knownpb.Any{
@@ -1658,7 +1658,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with BoolValue",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.BoolValue{})),
 		},
 		input: func() proto.Message {
@@ -1678,7 +1678,7 @@
 }`,
 	}, {
 		desc: "Any with Empty",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Empty{})),
 		},
 		input: func() proto.Message {
@@ -1698,7 +1698,7 @@
 }`,
 	}, {
 		desc: "Any with StringValue containing invalid UTF8",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.StringValue{})),
 		},
 		input: func() proto.Message {
@@ -1719,7 +1719,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with Int64Value",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Int64Value{})),
 		},
 		input: func() proto.Message {
@@ -1739,7 +1739,7 @@
 }`,
 	}, {
 		desc: "Any with Duration",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Duration{})),
 		},
 		input: func() proto.Message {
@@ -1759,7 +1759,7 @@
 }`,
 	}, {
 		desc: "Any with empty Value",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Value{})),
 		},
 		input: func() proto.Message {
@@ -1776,7 +1776,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with Value of StringValue",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Value{})),
 		},
 		input: func() proto.Message {
@@ -1797,7 +1797,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with Value of NullValue",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Value{})),
 		},
 		input: func() proto.Message {
@@ -1817,7 +1817,7 @@
 }`,
 	}, {
 		desc: "Any with Struct",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(
 				pimpl.Export{}.MessageTypeOf(&knownpb.Struct{}),
 				pimpl.Export{}.MessageTypeOf(&knownpb.Value{}),
@@ -1865,7 +1865,7 @@
 }`,
 	}, {
 		desc: "Any with missing type_url",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.BoolValue{})),
 		},
 		input: func() proto.Message {
@@ -1881,7 +1881,7 @@
 		wantErr: true,
 	}, {
 		desc: "well known types as field values",
-		mo: jsonpb.MarshalOptions{
+		mo: protojson.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&knownpb.Empty{})),
 		},
 		input: &pb2.KnownTypes{
diff --git a/encoding/jsonpb/well_known_types.go b/encoding/protojson/well_known_types.go
similarity index 99%
rename from encoding/jsonpb/well_known_types.go
rename to encoding/protojson/well_known_types.go
index c3ca47e..6aedebd 100644
--- a/encoding/jsonpb/well_known_types.go
+++ b/encoding/protojson/well_known_types.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package jsonpb
+package protojson
 
 import (
 	"bytes"
diff --git a/encoding/textpb/decode.go b/encoding/prototext/decode.go
similarity index 98%
rename from encoding/textpb/decode.go
rename to encoding/prototext/decode.go
index 88ac20e..f9263bd 100644
--- a/encoding/textpb/decode.go
+++ b/encoding/prototext/decode.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package textpb
+package prototext
 
 import (
 	"fmt"
@@ -46,7 +46,7 @@
 
 	mr := m.ProtoReflect()
 	// Clear all fields before populating it.
-	// TODO: Determine if this needs to be consistent with jsonpb and binary unmarshal where
+	// TODO: Determine if this needs to be consistent with protojson and binary unmarshal where
 	// behavior is to merge values into existing message. If decision is to not clear the fields
 	// ahead, code will need to be updated properly when merging nested messages.
 	resetMessage(mr)
diff --git a/encoding/textpb/decode_test.go b/encoding/prototext/decode_test.go
similarity index 97%
rename from encoding/textpb/decode_test.go
rename to encoding/prototext/decode_test.go
index d1e7b14..4837117 100644
--- a/encoding/textpb/decode_test.go
+++ b/encoding/prototext/decode_test.go
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package textpb_test
+package prototext_test
 
 import (
 	"math"
 	"testing"
 
 	protoV1 "github.com/golang/protobuf/proto"
-	"google.golang.org/protobuf/encoding/textpb"
+	"google.golang.org/protobuf/encoding/prototext"
 	"google.golang.org/protobuf/internal/errors"
 	pimpl "google.golang.org/protobuf/internal/impl"
 	"google.golang.org/protobuf/internal/scalar"
@@ -24,7 +24,7 @@
 func TestUnmarshal(t *testing.T) {
 	tests := []struct {
 		desc         string
-		umo          textpb.UnmarshalOptions
+		umo          prototext.UnmarshalOptions
 		inputMessage proto.Message
 		inputText    string
 		wantMessage  proto.Message
@@ -1001,7 +1001,7 @@
 		wantErr: true,
 	}, {
 		desc:         "required fields partially set with AllowPartial",
-		umo:          textpb.UnmarshalOptions{AllowPartial: true},
+		umo:          prototext.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.Requireds{},
 		inputText: `
 req_bool: false
@@ -1044,7 +1044,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field with AllowPartial",
-		umo:          textpb.UnmarshalOptions{AllowPartial: true},
+		umo:          prototext.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText:    "opt_nested: {}",
 		wantMessage: &pb2.IndirectRequired{
@@ -1070,7 +1070,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field in repeated with AllowPartial",
-		umo:          textpb.UnmarshalOptions{AllowPartial: true},
+		umo:          prototext.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText: `
 rpt_nested: {
@@ -1111,7 +1111,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field in map with AllowPartial",
-		umo:          textpb.UnmarshalOptions{AllowPartial: true},
+		umo:          prototext.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText: `
 str_to_nested: {
@@ -1145,7 +1145,7 @@
 		wantErr: true,
 	}, {
 		desc:         "indirect required field in oneof with AllowPartial",
-		umo:          textpb.UnmarshalOptions{AllowPartial: true},
+		umo:          prototext.UnmarshalOptions{AllowPartial: true},
 		inputMessage: &pb2.IndirectRequired{},
 		inputText: `oneof_nested: {}
 `,
@@ -1390,7 +1390,7 @@
 		},
 	}, {
 		desc: "Any expanded",
-		umo: textpb.UnmarshalOptions{
+		umo: prototext.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -1420,7 +1420,7 @@
 		}(),
 	}, {
 		desc: "Any expanded with empty value",
-		umo: textpb.UnmarshalOptions{
+		umo: prototext.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -1430,7 +1430,7 @@
 		},
 	}, {
 		desc: "Any expanded with missing required error",
-		umo: textpb.UnmarshalOptions{
+		umo: prototext.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.PartialRequired{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -1458,7 +1458,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with invalid UTF-8",
-		umo: textpb.UnmarshalOptions{
+		umo: prototext.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb3.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -1484,13 +1484,13 @@
 		wantErr: true,
 	}, {
 		desc:         "Any expanded with unregistered type",
-		umo:          textpb.UnmarshalOptions{Resolver: preg.NewTypes()},
+		umo:          prototext.UnmarshalOptions{Resolver: preg.NewTypes()},
 		inputMessage: &knownpb.Any{},
 		inputText:    `[SomeMessage]: {}`,
 		wantErr:      true,
 	}, {
 		desc: "Any expanded with invalid value",
-		umo: textpb.UnmarshalOptions{
+		umo: prototext.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -1498,7 +1498,7 @@
 		wantErr:      true,
 	}, {
 		desc: "Any expanded with unknown fields",
-		umo: textpb.UnmarshalOptions{
+		umo: prototext.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
@@ -1509,7 +1509,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any contains expanded and unexpanded fields",
-		umo: textpb.UnmarshalOptions{
+		umo: prototext.UnmarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		inputMessage: &knownpb.Any{},
diff --git a/encoding/textpb/doc.go b/encoding/prototext/doc.go
similarity index 65%
rename from encoding/textpb/doc.go
rename to encoding/prototext/doc.go
index ea97703..162b4f9 100644
--- a/encoding/textpb/doc.go
+++ b/encoding/prototext/doc.go
@@ -2,6 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Package textpb marshals and unmarshals protocol buffer messages as the
+// Package prototext marshals and unmarshals protocol buffer messages as the
 // textproto format.
-package textpb
+package prototext
diff --git a/encoding/textpb/encode.go b/encoding/prototext/encode.go
similarity index 99%
rename from encoding/textpb/encode.go
rename to encoding/prototext/encode.go
index 3964a33..8f06370 100644
--- a/encoding/textpb/encode.go
+++ b/encoding/prototext/encode.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package textpb
+package prototext
 
 import (
 	"fmt"
diff --git a/encoding/textpb/encode_test.go b/encoding/prototext/encode_test.go
similarity index 97%
rename from encoding/textpb/encode_test.go
rename to encoding/prototext/encode_test.go
index 03872e1..b2fc57b 100644
--- a/encoding/textpb/encode_test.go
+++ b/encoding/prototext/encode_test.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package textpb_test
+package prototext_test
 
 import (
 	"bytes"
@@ -13,7 +13,7 @@
 
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp/cmpopts"
-	"google.golang.org/protobuf/encoding/textpb"
+	"google.golang.org/protobuf/encoding/prototext"
 	"google.golang.org/protobuf/internal/detrand"
 	"google.golang.org/protobuf/internal/encoding/pack"
 	"google.golang.org/protobuf/internal/encoding/wire"
@@ -73,7 +73,7 @@
 func TestMarshal(t *testing.T) {
 	tests := []struct {
 		desc    string
-		mo      textpb.MarshalOptions
+		mo      prototext.MarshalOptions
 		input   proto.Message
 		want    string
 		wantErr bool // TODO: Verify error message content.
@@ -761,7 +761,7 @@
 		wantErr: true,
 	}, {
 		desc: "required fields not set with AllowPartial",
-		mo:   textpb.MarshalOptions{AllowPartial: true},
+		mo:   prototext.MarshalOptions{AllowPartial: true},
 		input: &pb2.Requireds{
 			ReqBool:     scalar.Bool(false),
 			ReqSfixed64: scalar.Int64(0xbeefcafe),
@@ -801,7 +801,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field with AllowPartial",
-		mo:   textpb.MarshalOptions{AllowPartial: true},
+		mo:   prototext.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			OptNested: &pb2.NestedWithRequired{},
 		},
@@ -823,7 +823,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field in repeated with AllowPartial",
-		mo:   textpb.MarshalOptions{AllowPartial: true},
+		mo:   prototext.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			RptNested: []*pb2.NestedWithRequired{
 				&pb2.NestedWithRequired{},
@@ -851,7 +851,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field in map with AllowPartial",
-		mo:   textpb.MarshalOptions{AllowPartial: true},
+		mo:   prototext.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			StrToNested: map[string]*pb2.NestedWithRequired{
 				"fail": &pb2.NestedWithRequired{},
@@ -873,7 +873,7 @@
 		wantErr: true,
 	}, {
 		desc: "indirect required field in oneof with AllowPartial",
-		mo:   textpb.MarshalOptions{AllowPartial: true},
+		mo:   prototext.MarshalOptions{AllowPartial: true},
 		input: &pb2.IndirectRequired{
 			Union: &pb2.IndirectRequired_OneofNested{
 				OneofNested: &pb2.NestedWithRequired{},
@@ -1006,7 +1006,7 @@
 		wantErr: true,
 	}, {
 		desc: "extension partial with AllowPartial",
-		mo:   textpb.MarshalOptions{AllowPartial: true},
+		mo:   prototext.MarshalOptions{AllowPartial: true},
 		input: func() proto.Message {
 			m := &pb2.Extensions{}
 			setExtension(m, pb2.E_OptExtPartial, &pb2.PartialRequired{
@@ -1167,7 +1167,7 @@
 `,
 	}, {
 		desc: "Any not expanded",
-		mo: textpb.MarshalOptions{
+		mo: prototext.MarshalOptions{
 			Resolver: preg.NewTypes(),
 		},
 		input: func() proto.Message {
@@ -1191,7 +1191,7 @@
 `,
 	}, {
 		desc: "Any expanded",
-		mo: textpb.MarshalOptions{
+		mo: prototext.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		input: func() proto.Message {
@@ -1219,7 +1219,7 @@
 `,
 	}, {
 		desc: "Any expanded with missing required error",
-		mo: textpb.MarshalOptions{
+		mo: prototext.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.PartialRequired{})),
 		},
 		input: func() proto.Message {
@@ -1245,7 +1245,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with invalid UTF-8",
-		mo: textpb.MarshalOptions{
+		mo: prototext.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb3.Nested{})),
 		},
 		input: func() proto.Message {
@@ -1268,7 +1268,7 @@
 		wantErr: true,
 	}, {
 		desc: "Any with invalid value",
-		mo: textpb.MarshalOptions{
+		mo: prototext.MarshalOptions{
 			Resolver: preg.NewTypes(pimpl.Export{}.MessageTypeOf(&pb2.Nested{})),
 		},
 		input: &knownpb.Any{
diff --git a/encoding/textpb/other_test.go b/encoding/prototext/other_test.go
similarity index 95%
rename from encoding/textpb/other_test.go
rename to encoding/prototext/other_test.go
index 008c090..4819f7d 100644
--- a/encoding/textpb/other_test.go
+++ b/encoding/prototext/other_test.go
@@ -1,10 +1,10 @@
-package textpb_test
+package prototext_test
 
 import (
 	"testing"
 
 	protoV1 "github.com/golang/protobuf/proto"
-	"google.golang.org/protobuf/encoding/textpb"
+	"google.golang.org/protobuf/encoding/prototext"
 	"google.golang.org/protobuf/internal/impl"
 	pimpl "google.golang.org/protobuf/internal/impl"
 	"google.golang.org/protobuf/internal/scalar"
@@ -220,13 +220,13 @@
 		tt := tt
 		t.Run(tt.desc, func(t *testing.T) {
 			t.Parallel()
-			b, err := textpb.MarshalOptions{Resolver: tt.resolver}.Marshal(tt.message)
+			b, err := prototext.MarshalOptions{Resolver: tt.resolver}.Marshal(tt.message)
 			if err != nil {
 				t.Errorf("Marshal() returned error: %v\n\n", err)
 			}
 
 			gotMessage := new(pb2.KnownTypes)
-			err = textpb.UnmarshalOptions{Resolver: tt.resolver}.Unmarshal(gotMessage, b)
+			err = prototext.UnmarshalOptions{Resolver: tt.resolver}.Unmarshal(gotMessage, b)
 			if err != nil {
 				t.Errorf("Unmarshal() returned error: %v\n\n", err)
 			}
diff --git a/encoding/textpb/textpb.go b/encoding/textpb/textpb.go
new file mode 100644
index 0000000..ba2c9ea
--- /dev/null
+++ b/encoding/textpb/textpb.go
@@ -0,0 +1,14 @@
+// Package textpb is deprecated.
+package textpb
+
+import "google.golang.org/protobuf/encoding/prototext"
+
+var (
+	Marshal   = prototext.Marshal
+	Unmarshal = prototext.Unmarshal
+)
+
+type (
+	MarshalOptions   = prototext.MarshalOptions
+	UnmarshalOptions = prototext.UnmarshalOptions
+)
diff --git a/internal/cmd/conformance/main.go b/internal/cmd/conformance/main.go
index 6783c16..5262376 100644
--- a/internal/cmd/conformance/main.go
+++ b/internal/cmd/conformance/main.go
@@ -12,7 +12,7 @@
 	"log"
 	"os"
 
-	"google.golang.org/protobuf/encoding/jsonpb"
+	"google.golang.org/protobuf/encoding/protojson"
 	"google.golang.org/protobuf/proto"
 
 	pb "google.golang.org/protobuf/internal/testprotos/conformance"
@@ -69,7 +69,7 @@
 	case *pb.ConformanceRequest_ProtobufPayload:
 		err = proto.Unmarshal(p.ProtobufPayload, msg)
 	case *pb.ConformanceRequest_JsonPayload:
-		err = jsonpb.UnmarshalOptions{
+		err = protojson.UnmarshalOptions{
 			DiscardUnknown: req.TestCategory == pb.TestCategory_JSON_IGNORE_UNKNOWN_PARSING_TEST,
 		}.Unmarshal(msg, []byte(p.JsonPayload))
 	default:
@@ -103,7 +103,7 @@
 			},
 		}
 	case pb.WireFormat_JSON:
-		p, err := jsonpb.Marshal(msg)
+		p, err := protojson.Marshal(msg)
 		if err != nil {
 			return &pb.ConformanceResponse{
 				Result: &pb.ConformanceResponse_SerializeError{
diff --git a/internal/cmd/generate-protos/main.go b/internal/cmd/generate-protos/main.go
index 1763a92..3ab6c30 100644
--- a/internal/cmd/generate-protos/main.go
+++ b/internal/cmd/generate-protos/main.go
@@ -21,8 +21,8 @@
 
 	gengogrpc "google.golang.org/protobuf/cmd/protoc-gen-go-grpc/internal_gengogrpc"
 	gengo "google.golang.org/protobuf/cmd/protoc-gen-go/internal_gengo"
+	"google.golang.org/protobuf/compiler/protogen"
 	"google.golang.org/protobuf/internal/detrand"
-	"google.golang.org/protobuf/protogen"
 	"google.golang.org/protobuf/reflect/protoreflect"
 )
 
diff --git a/internal/impl/export.go b/internal/impl/export.go
index ae0e9fa..9ea3900 100644
--- a/internal/impl/export.go
+++ b/internal/impl/export.go
@@ -8,7 +8,7 @@
 	"reflect"
 	"strconv"
 
-	"google.golang.org/protobuf/encoding/textpb"
+	"google.golang.org/protobuf/encoding/prototext"
 	pref "google.golang.org/protobuf/reflect/protoreflect"
 )
 
@@ -111,6 +111,6 @@
 // MessageStringOf returns the message value as a string,
 // which is the message serialized in the protobuf text format.
 func (Export) MessageStringOf(m pref.ProtoMessage) string {
-	b, _ := textpb.MarshalOptions{AllowPartial: true}.Marshal(m)
+	b, _ := prototext.MarshalOptions{AllowPartial: true}.Marshal(m)
 	return string(b)
 }
diff --git a/internal/legacy/enum.go b/internal/legacy/enum.go
index 67a43f9..d750f1e 100644
--- a/internal/legacy/enum.go
+++ b/internal/legacy/enum.go
@@ -152,7 +152,7 @@
 		// golang/protobuf so the enum may not even be found in the registry.
 		//
 		// Instead, create a bogus enum descriptor to ensure that
-		// most operations continue to work. For example, textpb and jsonpb
+		// most operations continue to work. For example, prototext and protojson
 		// will be unable to parse a message with an enum value by name.
 		e.Syntax = pref.Proto2
 		e.FullName = deriveFullName(t)
diff --git a/internal/prototype/protofile_type.go b/internal/prototype/protofile_type.go
index cf96277..99b0a53 100644
--- a/internal/prototype/protofile_type.go
+++ b/internal/prototype/protofile_type.go
@@ -230,7 +230,7 @@
 
 func (p *jsonName) lazyInit(f *Field) string {
 	p.once.Do(func() {
-		// TODO: We may need to share this logic with jsonpb for implementation
+		// TODO: We may need to share this logic with protojson for implementation
 		// of the FieldMask well-known type.
 		if f.JSONName != "" {
 			p.name = f.JSONName
diff --git a/proto/decode_test.go b/proto/decode_test.go
index c1810c5..47dfdb4 100644
--- a/proto/decode_test.go
+++ b/proto/decode_test.go
@@ -10,7 +10,7 @@
 	"testing"
 
 	protoV1 "github.com/golang/protobuf/proto"
-	"google.golang.org/protobuf/encoding/textpb"
+	"google.golang.org/protobuf/encoding/prototext"
 	"google.golang.org/protobuf/internal/encoding/pack"
 	"google.golang.org/protobuf/internal/errors"
 	"google.golang.org/protobuf/internal/scalar"
@@ -1271,7 +1271,7 @@
 }
 
 func marshalText(m proto.Message) string {
-	b, _ := textpb.Marshal(m)
+	b, _ := prototext.Marshal(m)
 	return string(b)
 }
 
diff --git a/testing/prototest/prototest.go b/testing/prototest/prototest.go
index c9f7c7a..c24a811 100644
--- a/testing/prototest/prototest.go
+++ b/testing/prototest/prototest.go
@@ -12,7 +12,7 @@
 	"sort"
 	"testing"
 
-	textpb "google.golang.org/protobuf/encoding/textpb"
+	prototext "google.golang.org/protobuf/encoding/prototext"
 	"google.golang.org/protobuf/proto"
 	pref "google.golang.org/protobuf/reflect/protoreflect"
 )
@@ -83,7 +83,7 @@
 }
 
 func marshalText(m proto.Message) string {
-	b, _ := textpb.MarshalOptions{Indent: "  "}.Marshal(m)
+	b, _ := prototext.MarshalOptions{Indent: "  "}.Marshal(m)
 	return string(b)
 }
 
@@ -346,7 +346,7 @@
 		buf.WriteString("]")
 		return buf.String()
 	case pref.Message:
-		b, err := textpb.Marshal(v.Interface())
+		b, err := prototext.Marshal(v.Interface())
 		if err != nil {
 			return fmt.Sprintf("<%v>", err)
 		}
