diff --git a/libraries.services.yml b/libraries.services.yml
index de969d2e02577b037e5a95d9b535150d4e59849a..59744cafac6dcd65881641b119934f8e0ad0beed 100644
--- a/libraries.services.yml
+++ b/libraries.services.yml
@@ -23,6 +23,10 @@ services:
     arguments: ['@config.factory']
     tags:
       - { name: stream_wrapper, scheme: 'library-definitions' }
+  stream_wrapper.asset_libraries:
+    class: Drupal\libraries\StreamWrapper\AssetLibrariesStream
+    tags:
+      - { name: stream_wrapper, scheme: 'asset' }
   stream_wrapper.php_library_files:
     class: Drupal\libraries\StreamWrapper\PhpLibraryFilesStream
     tags:
diff --git a/src/StreamWrapper/AssetLibrariesStream.php b/src/StreamWrapper/AssetLibrariesStream.php
new file mode 100644
index 0000000000000000000000000000000000000000..6fc0e8491f289d0be77a62e52371aa44d7274abc
--- /dev/null
+++ b/src/StreamWrapper/AssetLibrariesStream.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\libraries\StreamWrapper\PhpFileLibraryStream.
+ */
+
+namespace Drupal\libraries\StreamWrapper;
+
+use Drupal\Core\StreamWrapper\LocalStream;
+
+/**
+ * Provides a stream wrapper for asset libraries.
+ *
+ * Can be used with the 'asset://' scheme, for example
+ * 'asset://jquery/jquery.js'.
+ */
+class AssetLibrariesStream extends LocalStream {
+
+  use LocalHiddenStreamTrait;
+  use PrivateStreamTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getName() {
+    return t('Assets');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDescription() {
+    return t('Provides access to asset library files.');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDirectoryPath() {
+    // @todo Provide support for site-specific directories, etc.
+    return 'sites/all/assets';
+  }
+
+}