Azure Storage Type Provider

About the Azure Storage Type Provider

The F# Azure Storage Type Provider allows quick and easy exploration of your Azure Storage assets (Blobs, Tables and Queues) through the F# type system, allowing for rapid access to large amounts of data cheaply, both through scripts and applications. A fall-back to the standard .NET Azure SDK is also provided.


This example illustrates some of the features available from the type provider.

open FSharp.Azure.StorageTypeProvider

// Get a handle to my local storage emulator
type Azure = AzureTypeProvider<"UseDevelopmentStorage=true">

// Navigate through the containers to a specific file and read the contents.
let blobContents =

// Perform a strongly-typed query against a table with automatic schema generation.
let results =
         .``Where Name Is``.``Equal To``("fred")
         |> row -> row.Name, row.Dob)

// Navigate through storage queues and get messages
let queueMessage = Azure.Queues.``sample-queue``.Dequeue()

Samples & documentation

The library comes with comprehensible documentation.

  • The quickstart contains further examples of how to get up and running as well the guiding principles for the library.

  • There are detailed tutorials for the Blob, Table and Queue APIs.

  • API Reference contains automatically generated documentation for all types, modules and functions in the library. This includes additional brief samples on using most of the functions.

Contributing and copyright

The project is hosted on GitHub where you can report issues, fork the project and submit pull requests. If you're adding a new public API, please also consider adding samples that can be turned into a documentation. You might also want to read the library design notes to understand how it works.

The library is available under Public Domain license, which allows modification and redistribution for both commercial and non-commercial purposes. For more information see the License file in the GitHub repository.

Multiple items
namespace FSharp

namespace Microsoft.FSharp
namespace FSharp.Azure
namespace FSharp.Azure.StorageTypeProvider
type Azure = AzureTypeProvider<...>

Full name: Index.Azure
type AzureTypeProvider

Full name: FSharp.Azure.StorageTypeProvider.AzureTypeProvider

The entry type to connect to Azure Storage assets.
val blobContents : string

Full name: Index.blobContents
property AzureTypeProvider<...>.Containers: AzureTypeProvider<...>.Domain.Containers

Gets the list of all containers in this storage account.
property AzureTypeProvider<...>.Domain.Containers.samples: AzureTypeProvider<...>.Domain.samplesContainer

Provides access to the 'samples' container.
val results : (string * System.DateTime) []

Full name: Index.results
property AzureTypeProvider<...>.Tables: AzureTypeProvider<...>.Domain.Tables

Gets the list of all tables in this storage account.
property AzureTypeProvider<...>.Domain.Tables.employee: AzureTypeProvider<...>.Domain.employeeTable

Provides access to the 'employee' table.
AzureTypeProvider<...>.Domain.employeeTable.Query() : AzureTypeProvider<...>.Domain.employeeQueryBuilder

Creates a strongly-typed query against the table.

AzureTypeProvider<...>.Domain.employeeTable.Query(rawQuery: string, ?connectionString: string) : AzureTypeProvider<...>.Domain.employeeEntity []

Executes a weakly-type query and returns the results in the shape for this table.
module Array

from Microsoft.FSharp.Collections
val map : mapping:('T -> 'U) -> array:'T [] -> 'U []

Full name:
val row : AzureTypeProvider<...>.Domain.employeeEntity
property AzureTypeProvider<...>.Domain.employeeEntity.Name: string

Returns the value of the 'Name' property
property AzureTypeProvider<...>.Domain.employeeEntity.Dob: System.DateTime

Returns the value of the 'Dob' property
val queueMessage : Async<Queue.ProvidedQueueMessage option>

Full name: Index.queueMessage
property AzureTypeProvider<...>.Queues: AzureTypeProvider<...>.Domain.Queues

Gets the list of all queues in this storage account.
Fork me on GitHub