minio

JavaScript SDK for MinIO and any S3-compatible object storage

SDK
npm
v8.0.7
1,142stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
78/100Good
Development Activity72
Maintenance72
Community80
Maturity60
Momentum28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
76/100Good
Architecture80
Code Quality78
Innovation72
Learning Curve75

The MinIO JavaScript Client SDK provides high-level, promise-based APIs for working with any Amazon S3-compatible object storage server, whether that’s a self-hosted MinIO cluster or S3 itself. It covers the full range of bucket and object operations — creating and listing buckets, streaming uploads/downloads, multipart file transfers, presigned URLs, bucket policies, lifecycle rules, versioning, replication, and encryption — behind a single Minio.Client entry point.

Because it speaks the S3 API rather than a MinIO-only protocol, code written against this SDK is portable across MinIO, AWS S3, and other compatible providers, making it a common choice for Node.js applications that need object storage without committing to a single cloud vendor.

What You Get

  • A single Minio.Client class covering bucket operations (create, list, exists, remove, versioning, lifecycle, replication, encryption)
  • Streaming object APIs (putObject, getObject, fPutObject, fGetObject) for uploading/downloading without buffering entire files in memory
  • Presigned URL generation (presignedGetObject, presignedPutObject, presignedPostPolicy) for delegating temporary access without exposing credentials
  • Bucket notification and event-listening support (listenBucketNotification) for reacting to object changes
  • Built-in TypeScript type definitions (since 7.1.0) and both CommonJS and ESM builds

Common Use Cases

  • Uploading and serving user-generated files (images, documents, videos) from a Node.js backend to a self-hosted MinIO cluster
  • Generating presigned URLs so browsers or mobile clients can upload/download directly without routing bytes through the app server
  • Migrating storage code between AWS S3 and self-hosted MinIO without rewriting business logic, since both speak the same S3 API
  • Managing bucket lifecycle, versioning, and replication policies as part of an infrastructure-as-code or admin tooling workflow

Under The Hood

Architecture - The client is centered on src/internal/client.ts, which builds signed HTTP requests (SigV4, implemented in signing.ts) and parses XML responses (internal/xml-parser.ts) for every S3 operation; minio.ts composes this internal client with higher-level, publicly exported methods, while notification.ts, post-policy.ts, and copy-conditions.ts layer on specific S3 feature areas (bucket notifications, browser-based POST uploads, and conditional copies) on top of the same request pipeline.

Tech Stack - Written in TypeScript, built via a custom build.mjs script into both CommonJS (dist/main) and ESM (dist/esm) outputs with generated type declarations, so the same source ships to Node’s require and import consumers alike; linting is ESLint plus Prettier with Husky/lint-staged pre-commit hooks, and tests run under Mocha, including a separate tests/functional suite that exercises real S3-compatible operations rather than only mocks.

Code Quality - Core S3 protocol concerns (signing, XML parsing, error mapping in errors.ts) are isolated into their own modules under src/internal/, which keeps minio.ts focused on the public API surface; credential handling is further split into pluggable providers (AssumeRoleProvider.ts, IamAwsProvider.ts, CredentialProvider.ts) supporting STS-style role assumption and IAM-based credentials, not just static keys, alongside the standard functional test suite.

API Design - The public API is a single Minio.Client with async methods named directly after the operations they perform (fPutObject, bucketExists, presignedPutObject), which keeps the mental model close to the underlying S3 REST API and lowers the learning curve for anyone already familiar with S3 clients in other languages.

Used by 12 apps in this directory

TypeScript
72%
AGPL 3.0

APITable

Low Code Platforms · Databases

15,526

API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.

View details
53
Repo Health
77
Technical
60
Dependency
Built with
TypeScript72%
Java22%
Updated 9 months ago
TypeScript
89%
Other

FastGPT

AI Agents · AI Development

29,387

Build, debug, and deploy knowledge-based AI agents with a visual workflow editor, RAG retrieval, and support for any OpenAI-compatible LLM.

View details
93
Repo Health
84
Technical
70
Dependency
Built with
TypeScript89%
Updated today
TypeScript
83%
Apache 2.0

Grist

Databases · No Code Platforms

11,469

A modern relational spreadsheet that combines Python-powered formulas, drag-and-drop dashboards, and granular access controls in a self-hostable, SQLite-backed data platform.

View details
91
Repo Health
93
Technical
68
Dependency
Built with
TypeScript83%
Python11%
Updated yesterday
TypeScript
61%
EPL-2.0

Huly Platform

Project Management · Team Chat · Collaboration

27,384

Open-source all-in-one workspace that replaces Linear, Jira, Slack, and Notion for product and engineering teams.

View details
90
Repo Health
86
Technical
64
Dependency
Built with
TypeScript61%
Svelte34%
Updated 1 weeks ago
TypeScript
64%
Other

NocoDB

No Code Platforms · Databases · Low Code Platforms

64,586

Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.

View details
91
Repo Health
77
Technical
64
Dependency
Built with
TypeScript64%
Vue31%
Updated today
TypeScript
55%
Other

OpenReplay

Analytics

12,525

Self-hosted session replay and product analytics suite that lets you see exactly what users do on your web app — without sending data to third parties.

View details
91
Repo Health
77
Technical
72
Dependency
Built with
TypeScript55%
Go12%
Python10%
Updated yesterday
TypeScript
96%
Other

Refly

No Code Platforms · AI Development · Automation

7,490

Build deterministic, versioned agent skills from natural language—run them anywhere from Claude Code to Slack.

View details
66
Repo Health
76
Technical
64
Dependency
Built with
TypeScript96%
Updated 3 weeks ago
TypeScript
96%
Other

superglue

AI Agents · Data Engineering · Developer Tools

2,046

superglue is an AI-agent-driven integration engine that turns plain-English descriptions of enterprise systems into production-grade API tools, ERP/CRM connectors, and data pipelines — self-hosted or cloud, Y Combinator-backed (W25).

View details
50
Repo Health
79
Technical
72
Dependency
Built with
TypeScript96%
Updated 1 months ago
TypeScript
99%
Other

Teable

Databases · No Code Platforms

21,665

A no-code PostgreSQL database with spreadsheet UX, real-time collaboration, and native AI agents — built for teams that outgrow Airtable.

View details
79
Repo Health
76
Technical
64
Dependency
Built with
TypeScript99%
Updated today

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search