{"id":47551,"library":"fast-azure-storage","title":"fast-azure-storage","description":"A low-level, highly optimized Node.js client for Azure Storage services (blob, queue, table) with minimal dependencies. Version 4.0.0 requires Node >=20. Designed for maximum performance, it includes a custom HTTPS agent tuned for Azure Storage to reduce latency and connection errors. Key differentiators: no abstraction layers, direct access to storage types (e.g., Edm.Int64, Edm.Binary), support for shared-key and SAS authentication with automatic SAS refresh. Release cadence is low; library is mature but not actively extended.","status":"active","version":"4.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/taskcluster/fast-azure-storage","tags":["javascript"],"install":[{"cmd":"npm install fast-azure-storage","lang":"bash","label":"npm"},{"cmd":"yarn add fast-azure-storage","lang":"bash","label":"yarn"},{"cmd":"pnpm add fast-azure-storage","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Requires Node.js >=20 for runtime features (ESM, nullish coalescing, etc.)","package":"node","optional":false}],"imports":[{"note":"Library is ESM-only since v4; using require will throw ERR_REQUIRE_ESM","wrong":"const azure = require('fast-azure-storage')","symbol":"namespace","correct":"import * as azure from 'fast-azure-storage'"},{"note":"Exported as 'Agent' (custom HTTPS agent)","wrong":"import { AzureAgent } from 'fast-azure-storage'","symbol":"AzureAgent","correct":"import { Agent } from 'fast-azure-storage'"},{"note":"Table is a named export, not default","wrong":"import Table from 'fast-azure-storage'","symbol":"Table","correct":"import { Table } from 'fast-azure-storage'"},{"note":"Named 'Blob' not 'BlobClient'","wrong":"import { BlobClient } from 'fast-azure-storage'","symbol":"Blob","correct":"import { Blob } from 'fast-azure-storage'"},{"note":"Named 'Queue' not 'QueueClient'","wrong":"import { QueueClient } from 'fast-azure-storage'","symbol":"Queue","correct":"import { Queue } from 'fast-azure-storage'"}],"quickstart":{"code":"import { Queue } from 'fast-azure-storage';\n\nconst queue = new Queue({\n  accountId: process.env.AZURE_STORAGE_ACCOUNT ?? '',\n  accessKey: process.env.AZURE_STORAGE_ACCESS_KEY ?? '',\n});\n\nasync function main() {\n  const queueName = 'test-queue' + Date.now();\n  await queue.createQueue(queueName);\n  console.log(`Queue '${queueName}' created`);\n  await queue.putMessage(queueName, 'Hello Azure!');\n  console.log('Message sent');\n  const [messages] = await queue.getMessages(queueName, { numofmessages: 1 });\n  console.log('Received:', messages[0].messageText);\n  await queue.deleteMessage(queueName, messages[0].messageId, messages[0].popReceipt);\n  await queue.deleteQueue(queueName);\n}\n\nmain().catch(console.error);","lang":"typescript","description":"Creates a queue, sends a message, retrieves it, deletes the message, and cleans up the queue."},"warnings":[{"fix":"Switch to ESM imports (import {} from 'fast-azure-storage') or use dynamic import()","message":"Version 4.0.0 drops CommonJS support; require() will fail with ERR_REQUIRE_ESM","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Upgrade Node.js to version >=20","message":"Node.js >=20 required in v4; older versions will fail with Node.js version mismatch","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Provide a function that returns a Promise<string> for SAS token","message":"The 'sas' option as a plain string is deprecated; use a function returning a promise instead","severity":"deprecated","affected_versions":"<4.0.0"},{"fix":"Use new azure.Agent({...}) instead of new https.Agent({...})","message":"Custom agent must be an instance of azure.Agent; using Node's default https.Agent may cause connection errors","severity":"gotcha","affected_versions":"*"},{"fix":"Add properties like 'count@odata.type': 'Edm.Int64' and 'buffer@odata.type': 'Edm.Binary'","message":"Table entity types must be explicitly annotated with @odata.type for Int64 and Binary; omission causes silent data corruption","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"search_vec":"'20':27 '4.0.0':24 'abstract':51 'access':54 'activ':82 'agent':37 'authent':68 'automat':70 'azur':3,14,40 'blob':17 'cadenc':74 'client':12 'connect':46 'custom':35 'depend':22 'design':28 'differenti':49 'direct':53 'e.g':58 'edm.binary':60 'edm.int64':59 'error':47 'extend':83 'fast':2 'fast-azure-storag':1 'high':9 'https':36 'includ':33 'javascript':84 'key':48,65 'latenc':44 'layer':52 'level':8 'librari':77 'low':7,76 'low-level':6 'matur':79 'maximum':30 'minim':21 'node':26 'node.js':11 'optim':10 'perform':31 'queue':18 'reduc':43 'refresh':72 'releas':73 'requir':25 'sas':67,71 'servic':16 'share':64 'shared-key':63 'storag':4,15,41,56 'support':61 'tabl':19 'tune':38 'type':57 'version':23","created_at":"2026-06-07T16:52:05.430444+00:00","updated_at":"2026-06-07T16:52:05.430444+00:00","problems":[{"fix":"Change to import * as azure from 'fast-azure-storage' or use dynamic import()","cause":"Using CommonJS require() on an ESM-only package (v4+)","error":"ERR_REQUIRE_ESM"},{"fix":"Use a function that returns a fresh SAS token: sas: () => getSasToken()","cause":"SAS token passed as plain string without refresh function","error":"The provided SAS token has expired"},{"fix":"Use new azure.Agent({...}) for the agent option","cause":"Passing a regular https.Agent instead of azure.Agent","error":"TypeError: agent is not an instance of Agent"},{"fix":"Ensure messageText is <=64KB (base64-encoded if binary)","cause":"Queue message text exceeds 64KB limit","error":"The value for one of the XML nodes is too long or too short"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/taskcluster/fast-azure-storage#readme","github":"https://github.com/taskcluster/fast-azure-storage","docs":null,"changelog":null,"pypi":null,"npm":"fast-azure-storage","openapi_spec":null,"status_page":null,"smithery":null,"categories":["storage"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}