Local Azure.
Zero cost.
Zero restrictions.

floci-az is a fast, free, open-source Azure emulator built with Quarkus Native. No Azure account required.

Get Started → ★ View on GitHub
4577
Default port
all services on one port
10
Azure services
Storage · Cosmos · AKS · Functions · Messaging
MIT
License
fork, embed, extend freely
$0
Forever free
no Azure account needed

10 Azure services. All of them free.

Wire-compatible with the official Azure SDKs and Azurite emulator. Switch with zero application code changes.

Blob StorageREST XML / JSON
Queue StorageREST JSON
Table StorageOData / REST JSON
Azure FunctionsHTTP / Timer Triggers
App ConfigurationREST JSON · Labels
Key VaultREST · Secrets / Keys / Certs
Event HubsAMQP / Kafka / REST
Service BusAMQP · Topics / Queues
Cosmos DBSQL · Mongo · Cassandra · Gremlin
AKSREST JSON · k3s / mocked
Azure SQL ⏳REST JSON · SQL Server

⏳ In progress — available in an upcoming release

Drop-in. Native speed. No account.

The same native binary approach as floci for AWS, now applied to Azure. MIT licensed, no restrictions.

MIT

Free forever, no account

MIT licensed. No subscription, no API key, no billing. Pull the Docker image and start using Azure SDKs against localhost immediately.

SDK compatible

Uses the same Azurite-compatible connection string format. Switch from the real Azure or from Azurite by changing one endpoint URL.

Native binary speed

Compiled with GraalVM Mandrel. Starts in 24ms, idles at ~13 MiB. Instant startup, minimal memory footprint.

1

Single port (mostly)

All REST services on port 4577. Event Hubs and Service Bus also expose AMQP ports so native SDK clients connect without any proxy layer.

Fast. Lightweight. Zero overhead.

floci-az is built with Quarkus Native, the same stack as floci for AWS. Starts in 24ms, single Docker image, 10 services.

24ms
Startup time
Quarkus Native binary
1
Docker image
All services in a single container
4577
Primary port
All REST services, with AMQP ports for Event Hubs and Service Bus
~13 MiB
Idle memory
Quarkus Native, minimal memory footprint

Up in seconds.

Use the floci CLI for the smoothest experience, or run Docker directly if you prefer bare metal.

1 · Install floci CLI

brew install floci-io/floci/floci

2 · Start the emulator

floci az start

3 · Export env vars

eval $(floci az env)
# exports AZURE_STORAGE_CONNECTION_STRING

4 · Upload a file

# Create a container
az storage container create \
  --name my-container \
  --connection-string $AZURE_STORAGE_CONNECTION_STRING

# Write a file and upload it
echo "Azure locally — no bill, no drama. 🚀" \
  > hello-floci.txt
az storage blob upload \
  --container-name my-container \
  --name hello-floci.txt \
  --file hello-floci.txt \
  --connection-string $AZURE_STORAGE_CONNECTION_STRING

# Download it back and read it
az storage blob download \
  --container-name my-container \
  --name hello-floci.txt \
  --file hello-back.txt \
  --connection-string $AZURE_STORAGE_CONNECTION_STRING
cat hello-back.txt

Other useful commands

# Check status
floci az status

# View logs
floci az logs

# Stop the emulator
floci az stop

# Print individual SDK endpoint vars
eval $(floci az env --format sdk-vars)
# exports AZURE_STORAGE_BLOB_ENDPOINT,
# AZURE_APP_CONFIGURATION_ENDPOINT,
# AZURE_KEY_VAULT_ENDPOINT, ...

Start with persistence

floci az start --persist ./data
# state survives container restarts

Diagnose issues

floci az doctor
# checks Docker, Azure CLI, connectivity

Works with every Azure SDK.

Use the standard Azure Storage SDK in any language and point it at localhost:4577.

# pip install azure-storage-blob
from azure.storage.blob import BlobServiceClient

conn = (
  "DefaultEndpointsProtocol=http;"
  "AccountName=devstoreaccount1;"
  "AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;"
  "BlobEndpoint=http://localhost:4577/devstoreaccount1;"
)

client = BlobServiceClient.from_connection_string(conn)
container = client.create_container("my-container")

blob = client.get_blob_client("my-container", "hello.txt")
blob.upload_blob(b"Hello from floci-az!")

Default credentials

The following fixed credentials match Azurite's defaults. All Azure SDK tooling expects these values for local development.

PropertyValue
Account Namedevstoreaccount1
Account KeyEby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6I...
Blob endpointhttp://localhost:4577/devstoreaccount1
Queue endpointhttp://localhost:4577/devstoreaccount1
Table endpointhttp://localhost:4577/devstoreaccount1
Event Hubs AMQPamqp://localhost:5672
Service Bus AMQPamqp://localhost:5673
Event Hubs Kafkalocalhost:9093

Free. Fast. Always available.

MIT licensed and built for developer workflows. No Azure account, no subscription, no credit card. Just a Docker image and localhost.

View on GitHub → Also need AWS? Try floci →