micro
by
vercel

Description: Asynchronous HTTP microservices

View on GitHub ↗

Summary Information

Updated 22 minutes ago
Added to GitGenius on April 8th, 2021
Created on January 23rd, 2016
Open Issues & Pull Requests: 8 (+0)
Number of forks: 451
Total Stargazers: 10,617 (+0)
Total Subscribers: 176 (+0)

Issue Activity (beta)

Open issues: 5
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 946 days
Stale 30+ days: 5
Stale 90+ days: 5

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • version-patch (6)
  • help wanted (4)
  • version-minor (3)
  • RFC (1)
  • greenkeeper (1)
  • question (1)
  • version-major (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 332.2 days
Mean response time: 476.2 days
90th percentile: 845.3 days
Tracked items: 4

Most active contributors

Detailed Description

Micro is an asynchronous HTTP microservices framework maintained by Vercel, written in TypeScript and designed specifically for building lightweight, production-ready microservices. The project emphasizes simplicity and performance, with the entire codebase comprising approximately 260 lines of code. It is built around native async/await syntax, allowing developers to write clean, readable request handlers without callback chains or middleware layers.

The framework provides several core utilities for handling HTTP requests and responses. Body parsing is handled through async functions for buffering, text, and JSON parsing, each with configurable size limits and encoding options. The send function allows developers to return responses with specific HTTP status codes, automatically handling different data types including streams, buffers, objects serialized as JSON, and plain strings. Micro also includes error handling mechanisms through createError and sendError functions, which enable developers to throw errors with specific HTTP status codes that are automatically translated into appropriate responses.

A key architectural principle of Micro is its explicit dependency declaration model. Rather than using middleware, modules declare all their dependencies directly, promoting clarity and reducing hidden dependencies. The framework is intentionally minimal, with all dependencies combined weighing less than a megabyte. This lightweight approach makes Micro particularly suitable for containerized deployments, though the project includes a disclaimer that it was created for container use and is not intended for serverless environments like Vercel's own platform.

The repository shows moderate but consistent activity in issue and pull request handling, with a median response latency of approximately 7973 hours and a mean of 11428 hours across tracked items. Primary contributors tracked by GitGenius include SandaruwanB with 4 events, aditimahabole with 3 events, and ofhouse with 2 events. The project maintains connections with other major repositories through overlapping contributors, including meteor/meteor, microsoft/vscode, and vuejs/vue.

For development workflows, Micro recommends using the companion micro-dev tool, which provides development-specific features and utilities. The framework is designed exclusively for production use, with developers expected to use micro-dev during the development phase. Testing is facilitated through integration with test frameworks like Node TAP and AVA, with the project providing test-listen as a utility for obtaining ephemeral ports during testing.

The framework's design philosophy centers on single-purpose modules and standard HTTP semantics. It requires minimal configuration, with developers simply exporting a function that accepts standard Node.js http.IncomingMessage and http.ServerResponse objects. Port configuration can be managed through environment variables with optional fallback defaults. The project was created by Guillermo Rauch, Leo Lamprecht, and Tim Neutkens at Vercel, and it maintains comprehensive documentation including examples for common patterns like external API calls and form data parsing.

micro
by
vercelvercel/micro

Repository Details

Fetching additional details & charts...