SkillAgentSearch skills...

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/PortFusion
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

![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> | C | C | C | 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> | | C | C | C | C | [ARM] | B | <a href='http://fusion.corsis.tech'><img src='http://fusion.corsis.tech/i/down_16.png' /> Get</a> | C | C | C | C | C | [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 | | C | | C | C | C | C

CORSIS Research <br /> D builds official binaries <br /> B will build official binaries on demand <br /> C 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

View on GitHub
GitHub Stars194
CategoryDevelopment
Updated2mo ago
Forks41

Languages

Haskell

Security Score

100/100

Audited on Jan 14, 2026

No findings