[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10881":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},10881,"piping-server","nwtgck\u002Fpiping-server","nwtgck","Infinitely transfer between every device over pure HTTP with pipes or browsers","",null,"TypeScript",3148,167,40,22,0,1,59.28,"MIT License",false,"develop",true,[24,25,26,27,28,29],"data-transfer","http","nat-traversal","stream","transfer","web","2026-06-12 04:00:52","# Piping Server\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fpiping-server.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fpiping-server) [![CodeFactor](https:\u002F\u002Fwww.codefactor.io\u002Frepository\u002Fgithub\u002Fnwtgck\u002Fpiping-server\u002Fbadge)](https:\u002F\u002Fwww.codefactor.io\u002Frepository\u002Fgithub\u002Fnwtgck\u002Fpiping-server) [![Node CI](https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server\u002Factions\u002Fworkflows\u002Fci.yml) [![Docker Automated build](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fautomated\u002Fnwtgck\u002Fpiping-server.svg)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fnwtgck\u002Fpiping-server\u002F) [![](https:\u002F\u002Fimages.microbadger.com\u002Fbadges\u002Fimage\u002Fnwtgck\u002Fpiping-server.svg)](https:\u002F\u002Fmicrobadger.com\u002Fimages\u002Fnwtgck\u002Fpiping-server \"Get your own image badge on microbadger.com\")  \n\nInfinitely transfer between every device over HTTP\u002FHTTPS  \n\u003Cimg src=\"demo_images\u002Fpiping-server-terminal-hello.gif\" alt=\"Piping Server hello\" width=\"600\">\n\n\n## Transfer\n\nPiping Server is simple. You can transfer as follows.\n\n```bash\n# Send\necho 'hello, world' | curl -T - https:\u002F\u002Fppng.io\u002Fhello\n```\n\n```bash\n# Get\ncurl https:\u002F\u002Fppng.io\u002Fhello > hello.txt\n```\n\nPiping Server transfers data to `POST \u002Fhello` or `PUT \u002Fhello` into `GET \u002Fhello`. The path `\u002Fhello` can be anything such as `\u002Fmypath` or `\u002Fmypath\u002F123\u002F`. A sender and receivers who specify the same path can transfer. Both the sender and the recipient can start the transfer first. The first one waits for the other. \n\nYou can also use Web UI like \u003Chttps:\u002F\u002Fppng.io> on your browser. A more modern UI is found in \u003Chttps:\u002F\u002Fpiping-ui.org>, which supports E2E encryption.\n\n\n### Stream\nThe most important thing is that the data are streamed. This means that you can **transfer any data infinitely**. The demo below transfers an infinite text stream with `seq inf`.\n\n\u003Cimg src=\"demo_images\u002Fseq-inf.gif\" alt=\"infnite text stream\" width=\"400\">\n\n## Ideas\nPiping Server is designed based on the ideas as follows.\n\n- **Infinite transfer**: You can transfer any kind of data infinitely on a stream. Streams are very efficient in terms of both time and space.\n- **Zero installation**: All you need is to have either a Web browser or `curl`, which are widely pre-installed. You do not need to install any extra software.\n- **Simpleness**: Making simple makes it more secure.\n- **Storageless**: The server makes transfer more secure since the server never stores your data.\n- **Purity**: The server streams over pure HTTP, which makes integration easier with other softwares.\n- **Engineer friendly**: Also designed for Unix\u002FLinux users, who use pipes, not only for Web browser users.\n\n\n## Applications\n\nAny data such as text streams, video streams and protocols can be streamed over Piping Server. Here are applications that fully use the power of pure HTTP.  \nSee: \"[The Power of Pure HTTP – screen share, real-time messaging, SSH and VNC](https:\u002F\u002Fdev.to\u002Fnwtgck\u002Fthe-power-of-pure-http-screen-share-real-time-messaging-ssh-and-vnc-5ghc)\"\n\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\"demo_images\u002Ftext-stream-chat.gif\" width=\"300\">\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\"demo_images\u002Fscreen-share.gif\" width=\"300\">\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\"demo_images\u002Fpiping-draw.gif\" width=\"300\">\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server-streaming-upload-htmls\u002Fblob\u002Fa107dd1fb1bbee9991a9278b10d9eaf88b52c395\u002Ftext_stream.html\">Text stream chat\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server-streaming-upload-htmls\u002Fblob\u002Fa107dd1fb1bbee9991a9278b10d9eaf88b52c395\u002Fscreen_share.html\">Screen share\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-draw-web\">Drawing share\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\u003Cimg src=\"demo_images\u002Fpiping-ui.gif\" width=\"300\">\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\"demo_images\u002Fpiping-ssh.gif\" width=\"300\">\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\"demo_images\u002Fpiping-vnc.gif\" width=\"300\">\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-ui-web\">E2E encryption file transfer\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-ssh-web\">SSH on Web browser\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-vnc-web\">VNC on Web browser\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\nThe most important thing is that Piping Server stays simple. The applications use **Piping Server as a core of data communication**. It transfers data to `POST \u002Fthepath` into `GET \u002Fthepath` streamingly. The stream makes real-time communications over every device possible.\n\nSee \"[Ecosystem around Piping Server · nwtgck\u002Fpiping-server Wiki](https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server\u002Fwiki\u002FEcosystem-around-Piping-Server)\" to find more about softwares using Piping Server.\n\n## Power of HTTP\n\nIn my experiment, Piping Server transferred 1,110TB (≈ 1PB) in a single HTTP request for 64 days and 2 hours at least. This means that it can transfer huge data and keep a request for about 2 months.\n\n\u003Cimg src=\"demo_images\u002F1110TB-transfer.gif\" alt=\"The power of HTTP\" width=\"400\">\n\n## Engineer-friendly help\n\nGet help and version only with `curl`.\n\n```bash\ncurl https:\u002F\u002Fppng.io\u002Fhelp\n```\n\n```bash\ncurl https:\u002F\u002Fppng.io\u002Fversion\n```\n\n## Transfer to multiple receivers\n\nYou can transfer to multiple receivers. In the demo below, query parameter `?n=3` is specified to allow three receivers.\n\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server\u002Fraw\u002Fdevelop\u002Fdemo_images\u002Fpiping-server-multi-transfer.gif\" alt=\"Piping Server multiple transfer\" width=\"450\">\n\n\n## Public servers\n\nHere are public Piping Servers.\n\n* \u003Chttps:\u002F\u002Fppng.io>\n* \u003Chttps:\u002F\u002Fpiping.onrender.com>\n* \u003Chttps:\u002F\u002Fpiping.glitch.me>\n\n## Self-host on Docker\n\nRun a Piping Server on \u003Chttp:\u002F\u002Flocalhost:8080> as follows.\n\n```bash\ndocker run -p 8080:8080 nwtgck\u002Fpiping-server\n```\n\nRun a server in background and it automatically always restarts.\n\n```bash\ndocker run -p 8080:8080 -d --restart=always nwtgck\u002Fpiping-server\n```\n\n## Self-host using portable binaries\n\nRun a Piping Server on \u003Chttp:\u002F\u002Flocalhost:8080> as follows on Linux.\n\n```bash\ncurl -L https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server-pkg\u002Freleases\u002Fdownload\u002Fv1.12.0\u002Fpiping-server-pkg-linuxstatic-x64.tar.gz | tar xzvf -\n.\u002Fpiping-server-pkg-linuxstatic-x64\u002Fpiping-server --http-port=8080\n```\nThe binaries are for multi-platform including Linux on x64, Linux on ARM64, Linux on ARMv7, Intel macOS, Apple Silicon macOS and Windows on x64. See \u003Chttps:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server-pkg> to run on the other platform.\n\n## Self-host\n\nSee \"[Ecosystem around Piping Server · nwtgck\u002Fpiping-server Wiki](https:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server\u002Fwiki\u002FEcosystem-around-Piping-Server)\" to find more about self-hosting.\n\n## Headers passed from sender to receivers\n\nHere are headers passed to receivers.\n\n* `Content-Type`\n* `Content-Length`\n* `Content-Disposition`\n* `X-Piping`: custom header whose value is freely specified by the sender\n\n## Server options\n\nHere is available CLI options by `piping-server --help`.\n\n```\nOptions:\n  --help          Show help                                            [boolean]\n  --version       Show version number                                  [boolean]\n  --host          Bind address (e.g. 127.0.0.1, ::1)                    [string]\n  --http-port     Port of HTTP server                            [default: 8080]\n  --enable-https  Enable HTTPS                        [boolean] [default: false]\n  --https-port    Port of HTTPS server                                  [number]\n  --key-path      Private key path                                      [string]\n  --crt-path      Certification path                                    [string]\n```\n\n## Piping Server written in Rust\nPiping Server is also developed in Rust.  \n\u003Chttps:\u002F\u002Fgithub.com\u002Fnwtgck\u002Fpiping-server-rust>\n","Piping Server 是一个基于纯 HTTP\u002FHTTPS 的无限数据传输工具，支持在任意设备间进行数据流传输。其核心功能包括通过简单的命令行或Web界面实现数据的即时发送与接收，支持无限量的数据流传输，适用于文本、视频等多种类型的数据。技术特点方面，Piping Server 采用TypeScript编写，强调零安装需求（仅需浏览器或curl）、无存储设计以增强安全性、以及对Unix\u002FLinux管道操作的支持，使其成为工程师友好型解决方案。适合于需要跨设备高效安全地传输大量或持续性数据流的应用场景，如实时通信、远程桌面共享等。",2,"2026-06-11 03:30:38","top_topic"]