diff --git a/src/Microsoft.ML.Data/DataLoadSave/Binary/BinaryLoaderSaverCatalog.cs b/src/Microsoft.ML.Data/DataLoadSave/Binary/BinaryLoaderSaverCatalog.cs
new file mode 100644
index 0000000000..d697112719
--- /dev/null
+++ b/src/Microsoft.ML.Data/DataLoadSave/Binary/BinaryLoaderSaverCatalog.cs
@@ -0,0 +1,65 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.IO;
+using Microsoft.ML.Runtime;
+using Microsoft.ML.Runtime.Data;
+using Microsoft.ML.Runtime.Data.IO;
+
+namespace Microsoft.ML
+{
+ public static class BinaryLoaderSaverCatalog
+ {
+ ///
+ /// Read a data view from a Stream on a binary file using .
+ ///
+ /// The catalog.
+ /// The stream to read from.
+ public static IDataView ReadFromBinary(this DataOperations catalog, Stream stream)
+ {
+ Contracts.CheckValue(stream, nameof(stream));
+
+ var env = catalog.GetEnvironment();
+
+ var reader = new BinaryLoader(env, new BinaryLoader.Arguments(), stream);
+ return reader;
+ }
+
+ ///
+ /// Read a data view from a binary file using .
+ ///
+ /// The catalog.
+ /// The path to the file to read from.
+ public static IDataView ReadFromBinary(this DataOperations catalog, string path)
+ {
+ Contracts.CheckNonEmpty(path, nameof(path));
+
+ var env = catalog.GetEnvironment();
+
+ var reader = new BinaryLoader(env, new BinaryLoader.Arguments(), path);
+ return reader;
+ }
+
+ ///
+ /// Save the data view into a binary stream.
+ ///
+ /// The catalog.
+ /// The data view to save.
+ /// The stream to write to.
+ /// Whether to keep hidden columns in the dataset.
+ public static void SaveAsBinary(this DataOperations catalog, IDataView data, Stream stream,
+ bool keepHidden = false)
+ {
+ Contracts.CheckValue(catalog, nameof(catalog));
+ Contracts.CheckValue(data, nameof(data));
+ Contracts.CheckValue(stream, nameof(stream));
+
+ var env = catalog.GetEnvironment();
+ var saver = new BinarySaver(env, new BinarySaver.Arguments());
+
+ using (var ch = env.Start("Saving data"))
+ DataSaverUtils.SaveDataView(ch, saver, data, stream, keepHidden);
+ }
+ }
+}