PortFusion
Haskell-powered cross-platform transport-layer distributed reverse / forward proxy & tunneling solution – currently available for all TCP protocols (RDP, VNC, HTTP(S), SSH, ...).
Install / Use
/learn @corsis/PortFusionREADME
![pf] [pf]: http://fusion.corsis.tech/i/h.png "PortFusion"
<a href='http://sourceforge.net/projects/portfusion/files/1.2.1/#files'><img src='http://fusion.corsis.tech/i/down_16.png' /> Download 1.2.1</a> <span style="font-size: small">(for Windows, Linux, OS X and FreeBSD, ...)</span>
PortFusion is a minimalistic, cross-platform, transport-layer distributed reverse / forward proxy and tunneling solution for TCP released under GPLv3.
A single package that makes the most of each platform by tapping into their unique capabilities, combining this power with an intuitive interface, beautiful design and [Haskell]'s excellent support for unprecedented levels of concurrency and parallelism.
It strives for the smallest source code size while delivering maximum throughput with near-zero overhead.
Today, a growing number of companies and institutions around the world use PortFusion.
Use
PortFusion is a tiny command line application.
| Distributed Reverse Proxy Mode | Distributed Forward Proxy Mode |
|:--------------------------------|:-------------------------------|
| |
| <p>Work from home using remote desktop services circumventing corporate firewalls.</p> | <p>Connect to the internet through a http proxy via a gateway to a friend's intranet.</p>
| |
| ↓ home ↓ <pre>PortFusion ] 2000 [</pre><pre>PortFusion 3389 localhost - 2000 home [ 3389</pre> ↑ work ↑ | ↓ friend ↓ <pre>PortFusion ] 2000 [</pre><pre>PortFusion 3128 ] friend 2000 - server 3128</pre> ↑ you ↑
| |
| <p>Connections to home:3389 will now be tunnelled and reach work:3389.</p> <p>You only need to make home:2000 accessible from work.</p> | <p>Connections to you:3128 will now be tunnelled and reach server:3128.</p> <p>Your friend only needs to make friend:2000 accessible.</p>
| |
| <a name='illustrate' class='anchor' href='#illustrate' /> <img src="http://portfusion.sourceforge.net/w/wp-content/uploads/2012/05/dr1.png" /> | <img src="http://portfusion.sourceforge.net/w/wp-content/uploads/2012/05/df2.png" />
| |
| <img width='100%' src="http://portfusion.sourceforge.net/i/reverse-fusion-msc-8.png" alt="DR" /> | <img width='100%' src="http://portfusion.sourceforge.net/i/forward-fusion-msc-8.png" alt="DF" />
Build
Prerequisites
You need only one of the following rows for compilation.
| Remarks | OS | Compilers | |:--------|:-------------|:--------------------| | recommended and <br /> used for official binaries | ![Windows], ![Linux], ![OSX], ![FreeBSD], ![OpenBSD], ![Solaris], ![Other] | [GHC] >= 7.4 <br /> [LLVM] >= 3 | easy to install for <br /> all Haskell newbies | ![Windows], ![Linux], ![OSX] | [Haskell Platform] >= 2012.2.0.0
Instructions
cabal update
cabal install splice
git clone git://github.com/corsis/PortFusion.git -b master
cd PortFusion
cabal configure
cabal build
Flags
Following flags can be activated when using cabal configure -f <FLAG> or cabal install -f <FLAG>.
| Flag | Effect | Default | Official Binaries |
|:---------|:---------------------------------|:--------|:-------------------|
| | | |
| llvm | compile via [LLVM] | false | true
| static | link system libraries statically | false | See OS and CPUs
Download
Binaries
| <img height='48px' alt='CPU' title='CPU' src='http://a.fsdn.com/sd/topics/hardware_64.png' /> | ![Windows] | ![Linux] | ![OSX] | ![FreeBSD] | ![OpenBSD] | ![Solaris] | ![Other]
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ---------- | ---------- | --------
| x86-64 | <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> | <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> | <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> | <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> |
|
|
| x86-32 | <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> | <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> | |
|
|
|
| [ARM] |
| <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> |
|
|
|
|
| [MIPS] | | <a href='https://sourceforge.net/projects/portfusion/files/1.2.1/compressed/'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> | | | | |
| Other | |
| |
|
|
| 
CORSIS Research <br />
builds official binaries <br />
will build official binaries on demand <br />
can cooperate with community for builds <br />
Support
If you have access to an OS+CPU combination lacking official binaries, please contact us to join our build team!
Packages
PortFusion is available and can be very easily installed from Hackage:
cabal update
cabal install splice -f llvm
cabal install PortFusion -f llvm
If you do not have [LLVM] installed, you can drop -f llvm.
Compare
This is the new Haskell source code repository of the latest ]-[ayabusa version
– a complete rewrite of the initial Windows-only versions developed in F# / C#.
What is new in ]-[ayabusa?
PortFusion | 1.2.1 – ]-[ayabusa | 0.9.3 – old
--------------------|-----------------------------------------------------------------------------------|-----------------------
Memory at Start-up | ~0.7 MB | ~14 MB
Memory at 1 Fusion | ~1.0 MB (constant) | ~30 MB (lots of jumps)
Official Binaries | ![Windows], ![Linux], ![OSX], ![FreeBSD] | ![Windows]
OS Support | ![Windows], ![Linux], ![OSX], ![FreeBSD], ![OpenBSD], ![Solaris], ![Other] | ![Windows]
CPU Support | x86-64, x86-32, ARM, MIPS | x86
Source Code Size | < 500 lines (1 file) | 778 lines (multiple files)
Language | [Haskell] ([GHC] / [LLVM]) | F# / C#
Dependencies | none | .NET 4.0 + F# 2.0 Runtime
Deployment | 1 unified, native code binary for each platform
Related Skills
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.2kCommit, push, and open a PR
