PHPackages                             ostrolucky/stdinho - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. ostrolucky/stdinho

ActiveProject[HTTP &amp; Networking](/categories/http)

ostrolucky/stdinho
==================

Turn any STDIN/STDOUT into HTTP server

0.6.1(3y ago)133666GPL-3.0PHPPHP &gt;=8.0CI failing

Since Mar 10Pushed 1y ago6 watchersCompare

[ Source](https://github.com/ostrolucky/stdinho)[ Packagist](https://packagist.org/packages/ostrolucky/stdinho)[ RSS](/packages/ostrolucky-stdinho/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (13)Versions (19)Used By (0)

stdinho
=======

[](#stdinho)

[![Latest Version on Packagist](https://camo.githubusercontent.com/adcac8e1c707486613434e8aa0a52e8d007c2791d9ad91e0b386bb9103aa2b1d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f7374726f6c75636b792f737464696e686f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ostrolucky/stdinho)[![Software License](https://camo.githubusercontent.com/e1514dd3f2095dbf68a0008ae62a631142953ad2e86aa94c504343f2c2c191da/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Build Status](https://github.com/ostrolucky/stdinho/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/ostrolucky/stdinho/actions/workflows/continuous-integration.yml)

`stdinho` is small command-line tool that creates TCP server, accepts any STDOUT as its STDIN and whoever connects to the server will get this data served as HTTP response.

It was written from frustration of having to share remote resources with my under-priviliged colleagues on semi-regular basis. This typically involves downloading file, uploading file, sending the link, waiting until target finishes downloading file, deleting file. In each stage of the process you would normally have to wait.

Diagram below compares the usual approach from above (having to wait in each stage) vs. streaming approach stdinho provides.

[![stdinho animation](https://user-images.githubusercontent.com/496233/47866950-750db900-de00-11e8-8631-d25d723128f5.gif)](https://user-images.githubusercontent.com/496233/47866950-750db900-de00-11e8-8631-d25d723128f5.gif)

Install
-------

[](#install)

Via [Composer](https://getcomposer.org/doc/00-intro.md)

```
composer global require ostrolucky/stdinho
```

Or grab executable PHAR file from [Releases](https://github.com/ostrolucky/stdinho/releases)

Usage
-----

[](#usage)

As simple as just piping some data in:

```
echo hello world|stdinho
```

For all options see

```
stdinho --help
```

Features
--------

[](#features)

- async. Yep, in PHP. No restriction on clients downloading simultaneusly
- buffers to temp file before client is connected, so no time or data in between is lost
- cross-platform: Linux/MacOS/Windows
- detects MIME type and attaches it to HTTP response
- neat progress bar showing status of buffering and client downloads.

Examples
--------

[](#examples)

Video streaming```
# Server
$ stdinho 0.0.0.0:1337  C -> D -> B which bypasses connection problem between A and B and NAT issue at the same time
#   This problem is basically animation shown in introduction of this README.
# C:
$ ssh -NR \*:1337:localhost:1337 D #Reverse tunnel. Note: GatewayPorts cannot be set to "no" in D's sshd_config
$ curl http://A.com/big_file.tar.gz|stdinho 0.0.0.0:1337
# B:
$ curl D:1337 -o big_file.tar.gz
```

Licensing
---------

[](#licensing)

GPLv3 license. Please see [License File](LICENSE.md) for more information.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance30

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 97.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~121 days

Recently: every ~299 days

Total

15

Last Release

1284d ago

PHP version history (3 changes)0.1PHP &gt;=7.0

0.2PHP &gt;=7.1

0.6.0PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/2f56471f595636876f95264fa5c455d611329a4820193f88d22e83a5bd900292?d=identicon)[ostrolucky](/maintainers/ostrolucky)

---

Top Contributors

[![ostrolucky](https://avatars.githubusercontent.com/u/496233?v=4)](https://github.com/ostrolucky "ostrolucky (120 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (2 commits)")[![GromNaN](https://avatars.githubusercontent.com/u/400034?v=4)](https://github.com/GromNaN "GromNaN (1 commits)")

---

Tags

http-serverstdin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ostrolucky-stdinho/health.svg)

```
[![Health](https://phpackages.com/badges/ostrolucky-stdinho/health.svg)](https://phpackages.com/packages/ostrolucky-stdinho)
```

###  Alternatives

[vimeo/psalm

A static analysis tool for finding errors in PHP applications

5.8k77.5M6.7k](/packages/vimeo-psalm)[nelmio/api-doc-bundle

Generates documentation for your REST API from attributes

2.3k63.6M233](/packages/nelmio-api-doc-bundle)[danog/madelineproto

Async PHP client API for the telegram MTProto protocol.

3.4k855.0k18](/packages/danog-madelineproto)[amphp/http-server

A non-blocking HTTP application server for PHP based on Amp.

1.3k4.5M81](/packages/amphp-http-server)[amphp/http-client

An advanced async HTTP client library for PHP, enabling efficient, non-blocking, and concurrent requests and responses.

7296.8M137](/packages/amphp-http-client)[amphp/redis

Efficient asynchronous communication with Redis servers, enabling scalable and responsive data storage and retrieval.

165634.7k44](/packages/amphp-redis)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
