diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json
index 5f3d303b5d..ab349bc8a5 100644
--- a/assets/javascripts/news.json
+++ b/assets/javascripts/news.json
@@ -1,4 +1,8 @@
[
+ [
+ "2026-07-27",
+ "New documentation: Tokio"
+ ],
[
"2026-07-09",
"New documentation: MapLibre GL JS"
diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss
index 5dd9f6c99b..13630eea4b 100644
--- a/assets/stylesheets/application.css.scss
+++ b/assets/stylesheets/application.css.scss
@@ -126,6 +126,7 @@
@use 'pages/tcl_tk';
@use 'pages/tensorflow';
@use 'pages/terraform';
+@use 'pages/tokio';
@use 'pages/typescript';
@use 'pages/underscore';
@use 'pages/vue';
diff --git a/assets/stylesheets/pages/_tokio.scss b/assets/stylesheets/pages/_tokio.scss
new file mode 100644
index 0000000000..6c9f50dba4
--- /dev/null
+++ b/assets/stylesheets/pages/_tokio.scss
@@ -0,0 +1,10 @@
+@use 'pages/simple';
+
+._tokio {
+ @extend %simple;
+
+ .stab {
+ @extend %note;
+ @extend %note-orange;
+ }
+}
diff --git a/lib/docs/filters/tokio/clean_html.rb b/lib/docs/filters/tokio/clean_html.rb
new file mode 100644
index 0000000000..d7a88fde0f
--- /dev/null
+++ b/lib/docs/filters/tokio/clean_html.rb
@@ -0,0 +1,32 @@
+module Docs
+ class Tokio
+ class CleanHtmlFilter < Filter
+ def call
+ css('.main-heading h1').each do |node|
+ node.parent.replace(node)
+ end
+
+ doc.css(
+ 'a.doc-anchor',
+ 'a.anchor',
+ 'a.src',
+ 'button#copy-path',
+ '.rustdoc-breadcrumbs',
+ '.sub-heading'
+ ).remove
+
+ doc.css('pre.rust').each do |code|
+ code['data-language'] = 'rust'
+ end
+
+ # Get rid of toggles hiding useful info.
+ doc.css('details').each do |node|
+ node.name = 'div'
+ end
+ doc.css('summary.hideme').remove
+
+ doc
+ end
+ end
+ end
+end
diff --git a/lib/docs/filters/tokio/entries.rb b/lib/docs/filters/tokio/entries.rb
new file mode 100644
index 0000000000..3d7814f7b7
--- /dev/null
+++ b/lib/docs/filters/tokio/entries.rb
@@ -0,0 +1,35 @@
+module Docs
+ class Tokio
+ class EntriesFilter < Docs::EntriesFilter
+ def get_name
+ namespace = at_css('.rustdoc-breadcrumbs').inner_text
+ header = at_css('h1 > span').inner_text
+ "#{namespace}::#{header}"
+ end
+
+ def get_type
+ header = at_css('h1').inner_text
+
+ if header.include?('Attribute Macro')
+ 'Attribute Macros'
+ elsif header.include?('Macro')
+ 'Macros'
+ elsif header.include?('Module')
+ 'Modules'
+ elsif header.include?('Struct')
+ 'Structs'
+ elsif header.include?('Function')
+ 'Functions'
+ elsif header.include?('Enum')
+ 'Enums'
+ elsif header.include?('Trait')
+ 'Traits'
+ elsif header.include?('Type')
+ 'Types'
+ else
+ 'Other'
+ end
+ end
+ end
+ end
+end
diff --git a/lib/docs/scrapers/tokio.rb b/lib/docs/scrapers/tokio.rb
new file mode 100644
index 0000000000..6cf56d019e
--- /dev/null
+++ b/lib/docs/scrapers/tokio.rb
@@ -0,0 +1,31 @@
+module Docs
+ class Tokio < UrlScraper
+ self.name = 'Tokio'
+ self.type = 'tokio'
+ self.root_path = 'index.html'
+ self.links = {
+ home: 'https://tokio.rs/',
+ code: 'https://github.com/tokio-rs/tokio'
+ }
+
+ html_filters.push 'tokio/entries', 'tokio/clean_html'
+
+ options[:rate_limit] = 50
+ options[:container] = 'section.content'
+ options[:skip_patterns] = [/\/next|\/\d\.\d*/, /rabbitmq\//]
+ options[:attribution] = <<-HTML
+ MIT License
+ Copyright © Tokio Contributors
+ HTML
+
+ version do
+ self.release = '1.53.1'
+ self.base_url = "https://docs.rs/tokio/#{self.release}/tokio/"
+ end
+
+ def get_latest_version(opts)
+ doc = fetch_doc('https://docs.rs/tokio/latest/tokio/index.html', opts)
+ doc.at_css('h2 > .version').content.strip
+ end
+ end
+end
diff --git a/public/icons/docs/tokio/16.png b/public/icons/docs/tokio/16.png
new file mode 100644
index 0000000000..830b4021d5
Binary files /dev/null and b/public/icons/docs/tokio/16.png differ
diff --git a/public/icons/docs/tokio/16@2x.png b/public/icons/docs/tokio/16@2x.png
new file mode 100644
index 0000000000..f593b8573d
Binary files /dev/null and b/public/icons/docs/tokio/16@2x.png differ
diff --git a/public/icons/docs/tokio/SOURCE b/public/icons/docs/tokio/SOURCE
new file mode 100644
index 0000000000..e09093716f
--- /dev/null
+++ b/public/icons/docs/tokio/SOURCE
@@ -0,0 +1 @@
+https://upload.wikimedia.org/wikipedia/commons/6/60/Tokio_logo.svg