{"id":13989720,"url":"https://github.com/arafato/azurite","last_synced_at":"2025-07-22T11:31:33.547Z","repository":{"id":60774036,"uuid":"75433540","full_name":"arafato/azurite","owner":"arafato","description":"!! This repository has now moved to https://github.com/azure/azurite !! A lightweight server clone of Azure Blob, Queue, and Table Storage that simulates most of the commands supported by it with minimal dependencies. ","archived":true,"fork":false,"pushed_at":"2018-03-21T15:30:59.000Z","size":959,"stargazers_count":103,"open_issues_count":8,"forks_count":25,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-07-20T06:25:38.551Z","etag":null,"topics":["azure","azure-storage","azure-storage-blob","azure-storage-queue","devops","emulator","table-storage","table-storage-emulator"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arafato.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-02T21:46:57.000Z","updated_at":"2025-02-08T02:21:08.000Z","dependencies_parsed_at":"2022-10-04T15:24:47.629Z","dependency_job_id":null,"html_url":"https://github.com/arafato/azurite","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/arafato/azurite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arafato%2Fazurite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arafato%2Fazurite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arafato%2Fazurite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arafato%2Fazurite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arafato","download_url":"https://codeload.github.com/arafato/azurite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arafato%2Fazurite/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266483671,"owners_count":23936395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azure-storage","azure-storage-blob","azure-storage-queue","devops","emulator","table-storage","table-storage-emulator"],"created_at":"2024-08-09T13:01:59.725Z","updated_at":"2025-07-22T11:31:32.617Z","avatar_url":"https://github.com/arafato.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Azurite\n[![npm version](https://badge.fury.io/js/azurite.svg)](https://badge.fury.io/js/azurite)\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)]()\n[![Build Status](https://travis-ci.org/arafato/azurite.svg?branch=master)](https://travis-ci.org/arafato/azurite)\n\n:warning: **Warning: This repository has now moved to [https://github.com/azure/azurite](https://github.com/azure/azurite)**\n\nDear friends, thank you for your contributions so far!\nPlease take note of the above, this project is now part of the Azure repo and will only accept changes there.\nWe are just in the process of moving everything over.\n___\n\nA lightweight server clone of Azure Blob, Queue, and Table Storage that simulates most of the commands supported by it with minimal dependencies.\n\n# Installation and Usage\n## NPM\nIn order to run Azurite you need [Node.js](https://nodejs.org/) \u003e= 6.0 installed on your system. Azurite works cross-platform on Windows, Linux, and OS X. \n\nAfter installation you can install Azurite simply with `npm` which is Node.js package management tool and which is included with every Node.js installation.\n\n`$ npm install -g azurite`\n\nThen simply start it with the following command: \n\n`$ azurite -l path/to/localfolder`\n\nThis tells Azurite to store all data in a particular directory. If the `-l` option is ommitted it will use the current working directory. This also will start both blob storage and queue storage emulation in two different processes.\nYou can also selectively start the different storage emulators.\n\nFor Blob Storage Emulator only:\n\n`$ azurite-blob -l path/to/azurite/workspace`\n\nFor Queue Storage Emulator only:\n\n`$ azurite-queue`\n\nFor Table Storage Emulator only:\n\n`$ azurite-table -l path/to/azurite/workspace`\n\n## Nuget\nAzurite is also available as Nuget package at [https://www.nuget.org/packages/Azurite/](https://www.nuget.org/packages/Azurite/).\nYou can install it via the [Package Manager Console](https://docs.nuget.org/docs/start-here/using-the-package-manager-console) with the following command:\n```bash\nPM\u003e Install-Package Azurite\n```\nThis will install Azurite to your current project and also immediately start it in a dedicated console window. Note that you do not need to install Node.js since Azurite is packaged into\na single self-contained executable, thanks to [pkg](https://www.npmjs.com/package/pkg).\n\n## Docker image\n\n### Pulling from Docker Hub\nEvery release of Azurite starting with version 0.9.7 is available at [Docker Hub](https://hub.docker.com/r/arafato/azurite/) and ready to be pulled with:\n```bash\n$ docker pull arafato/azurite\n```\nPlease note that the `latest` tag will always refer to the latest release.\n\n### Build the Docker image \nTo build the Docker image yourself, execute the following:\n```bash\n$ docker build -t arafato/azurite .\n```\n\n### Run the Docker image\nTo run the Docker image, execute the following command:\n```bash\n$ docker run -d -t -p 10000:10000 -p 10001:10001 -v /path/to/folder:/opt/azurite/folder arafato/azurite\n```\n\n#### Configure the executable when running the container\nBy default, the container starts all services available (currently blob, queue, and table).\nUsing the environment variable `executable`, specific executables can be specifed:\n\n * `blob` Start the Blob Storage Emulator only\n * `queue` Start the Azure Queue Storage Emulator only\n * `table` Start the Azure Table Storage Emulator only\n\n##### Usage example:\n```bash\n$ docker run -e executable=blob -d -t -p 10000:10000 -v /path/to/folder:/opt/azurite/folder arafato/azurite\n```\n\n## Usage with Azure Cross-Platform CLI 2.0\n\nTo perform blob storage operations using the 2.0 Azure cross-platform CLI, you need to operate with the\nappropriate connection string. The values within are based on the hardcoded Azure Storage Emulator values.\n\nExample command to create a container:\n\n```shell\n$ az storage container create --name 'test' --connection-string 'DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;'\n\n{\n  \"created\": true\n}\n```\n\n\n# Contributions\n## What do I need to know to help?\nIf you are interested in making a code contribution and would like to learn more about the technologies that we use, check out the list below.\n\n- Azurite runs on [Node.js](https://nodejs.org/). If you never worked with this technology before make sure to get yourself familiar with it. There are many [good tutorials](https://blog.risingstack.com/node-hero-tutorial-getting-started-with-node-js/) out there along with a [comprehensive API documentation](https://nodejs.org/dist/latest-v6.x/docs/api/) that will get you up to speed quickly! We are currently coding against Node.js v8.9.4 LTS \n- Azurite exposes its REST-based API via [Express.js](https://expressjs.com/) which is a \"fast, unopinionated, minimalist web framework for Node.js. \n- Azurite uses [LokiJS](http://lokijs.org) which is an in-memory data store with persistence. It serves as our central database to store metadata (names, properties, leases, etc.) about all objects put into Azurite.\n- Azurite makes heavy use of [Bluebird](http://bluebirdjs.com/docs/getting-started.html) which is a fully featured promises library with unmatched performance.  \n\n## What TODOs are there?\nThe current status of Azurite's support of the [Official Blob Storage REST API Specification](https://docs.microsoft.com/rest/api/storageservices/blob-service-rest-api) is listed in below section [API Support](https://github.com/arafato/azurite/#api-support). Features that are still unimplemented are marked with `[TODO]`. Features that are currently being worked on are marked with `[IN-PROGRESS]`.\n\nCurrent bugs that need to be fixed are listed at our [issues site on Github](https://github.com/arafato/azurite/issues) and tagged with a red label `bug`.\n\n## How do I make a contribution?\n\nNever made an open source contribution before? Wondering how contributions work in Azurite? Here's a quick rundown!\n\n1. Find an issue that you are interested in addressing or a feature that you would like to add.\n\n2. Fork the Azurite repository to your local GitHub organization. This means that you will have a copy of the repository under `your-GitHub-username/azurite`.\n\n3. Clone the repository to your local machine using git clone `https://github.com/github-username/azurite.git`.\n\n4. Create a new branch for your fix using `git checkout -b branch-name-here`.\nMake the appropriate changes for the issue you are trying to address or the feature that you want to add.\n\n5. Use `git add insert-paths-of-changed-files-here` to add the file contents of the changed files to the \"snapshot\" git uses to manage the state of the project, also known as the index.\n\n6. Use `git commit -m \"Insert a short message of the changes made here\"` to store the contents of the index with a descriptive message.\n\n7. Push the changes to the remote repository using `git push origin branch-name-here`.\n\n8. Submit a pull request to the upstream repository.\nTitle the pull request with a short description of the changes made and the issue or bug number associated with your change. For example, you can title an issue like so \"Added more log outputting to resolve #4352\".\nIn the description of the pull request, explain the changes that you made, any issues you think exist with the pull request you made, and any questions you have for the maintainer. It's OK if your pull request is not perfect (no pull request is), the reviewer will be able to help you fix any problems and improve it!\n\n9. Wait for the pull request to be reviewed by a maintainer.\nMake changes to the pull request if the reviewing maintainer recommends them.\n\n10. Celebrate your success after your pull request is merged!\n\n## Where can I go for help?\nIf you need help, you can ask questions directly at our [issues site on Github](https://github.com/arafato/azurite/issues).\n\n# API Support\nCurrently, Azurite only supports the [Blob Storage APIs](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/blob-service-rest-api), the [Queue Storage API](https://docs.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api), and the [Table Storage API](https://docs.microsoft.com/en-us/rest/api/storageservices/table-service-rest-api). Support for Azure Storage Files is planned, but currently not available. \n\nThe Standard Emulator Connection String is the same as required by [Microsoft's Official Storage Emulator](https://go.microsoft.com/fwlink/?LinkId=717179):\n\n`BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`\n\n`QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;`\n\n`TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;`\n\n\n## Blob Storage - API Implementation Status\nAll DONE except:\n- Account SAS Support [TODO]  \nSee [https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas](https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas) for specification\n\n- Get Blob Service Stats [TODO]  \nRetrieves statistics related to replication for the Blob service. This operation is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account.\n\n- Set Blob Tier [TODO]\nThe Set Blob Tier operation sets the tier on a blob.\n\n## Queue Storage - API Implementation Status\nAll DONE.\n\n## Table Storage - API Implementation Status\nALL DONE except:\n- Get Table ACL [TODO]\n- Set Table ACL [TODO]\n- Entity Group Transaction (Batch Operation) [TODO]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farafato%2Fazurite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farafato%2Fazurite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farafato%2Fazurite/lists"}