diff --git a/pkgs/io/CHANGELOG.md b/pkgs/io/CHANGELOG.md
index bd92971..3ea84c9 100644
--- a/pkgs/io/CHANGELOG.md
+++ b/pkgs/io/CHANGELOG.md
@@ -1,6 +1,7 @@
-## 0.3.5-dev
+## 0.3.5
 
 * Require Dart >=2.1
+* Remove dependency on `package:charcode`.
 
 ## 0.3.4
 
@@ -41,7 +42,7 @@
 main() async {
   // Prints the first line entered on stdin.
   print(await sharedStdIn.nextLine());
-  
+
   // Prints all remaining lines.
   await for (final line in sharedStdIn.lines) {
     print(line);
@@ -79,7 +80,7 @@
 
 - Added the `shellSplit()` function, which parses a list of arguments in the
   same manner as [the POSIX shell][what_is_posix_shell].
-  
+
 [what_is_posix_shell]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html
 
 ## 0.2.0
diff --git a/pkgs/io/lib/src/charcodes.dart b/pkgs/io/lib/src/charcodes.dart
new file mode 100644
index 0000000..d6557e8
--- /dev/null
+++ b/pkgs/io/lib/src/charcodes.dart
@@ -0,0 +1,34 @@
+// Copyright 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Generated using:
+//  pub global run charcode \$=dollar \'=single_quote \"=double_quote \
+//      \' '\\\n"$`# \t'
+
+/// "Horizontal Tab" control character, common name.
+const int $tab = 0x09;
+
+/// "Line feed" control character.
+const int $lf = 0x0a;
+
+/// Space character.
+const int $space = 0x20;
+
+/// Character `"`, short name.
+const int $doubleQuote = 0x22;
+
+/// Character `#`.
+const int $hash = 0x23;
+
+/// Character `$`.
+const int $dollar = 0x24;
+
+/// Character "'".
+const int $singleQuote = 0x27;
+
+/// Character `\`.
+const int $backslash = 0x5c;
+
+/// Character `` ` ``.
+const int $backquote = 0x60;
diff --git a/pkgs/io/lib/src/shell_words.dart b/pkgs/io/lib/src/shell_words.dart
index 8e057d7..d293e39 100644
--- a/pkgs/io/lib/src/shell_words.dart
+++ b/pkgs/io/lib/src/shell_words.dart
@@ -4,9 +4,10 @@
 
 // ignore_for_file: comment_references
 
-import 'package:charcode/charcode.dart';
 import 'package:string_scanner/string_scanner.dart';
 
+import 'charcodes.dart';
+
 /// Splits [command] into tokens according to [the POSIX shell
 /// specification][spec].
 ///
@@ -48,19 +49,19 @@
         token.writeCharCode(scanner.readChar());
         break;
 
-      case $single_quote:
+      case $singleQuote:
         hasToken = true;
         // Section 2.2.2: Enclosing characters in single-quotes ( '' ) shall
         // preserve the literal value of each character within the
         // single-quotes. A single-quote cannot occur within single-quotes.
         final firstQuote = scanner.position - 1;
-        while (!scanner.scanChar($single_quote)) {
+        while (!scanner.scanChar($singleQuote)) {
           _checkUnmatchedQuote(scanner, firstQuote);
           token.writeCharCode(scanner.readChar());
         }
         break;
 
-      case $double_quote:
+      case $doubleQuote:
         hasToken = true;
         // Section 2.2.3: Enclosing characters in double-quotes ( "" ) shall
         // preserve the literal value of all characters within the
@@ -71,7 +72,7 @@
         // or dollar sign within double quotes, since those are dynamic
         // features.)
         final firstQuote = scanner.position - 1;
-        while (!scanner.scanChar($double_quote)) {
+        while (!scanner.scanChar($doubleQuote)) {
           _checkUnmatchedQuote(scanner, firstQuote);
 
           if (scanner.scanChar($backslash)) {
@@ -86,7 +87,7 @@
             if (next == $lf) continue;
             if (next == $dollar ||
                 next == $backquote ||
-                next == $double_quote ||
+                next == $doubleQuote ||
                 next == $backslash) {
               token.writeCharCode(next);
             } else {
diff --git a/pkgs/io/pubspec.yaml b/pkgs/io/pubspec.yaml
index 7bb19ba..242344c 100644
--- a/pkgs/io/pubspec.yaml
+++ b/pkgs/io/pubspec.yaml
@@ -2,14 +2,13 @@
 description: >-
   Utilities for the Dart VM Runtime including support for ANSI colors,
   file copying, and standard exit code values.
-version: 0.3.5-dev
+version: 0.3.5
 homepage: https://github.com/dart-lang/io
 
 environment:
   sdk: ">=2.1.0 <3.0.0"
 
 dependencies:
-  charcode: ^1.0.0
   meta: ^1.0.2
   path: ^1.5.1
   string_scanner: ">=0.1.5 <2.0.0"
