All Projects → corsis → Portfusion

corsis / Portfusion

Licence: gpl-3.0
Haskell-powered cross-platform transport-layer distributed reverse / forward proxy & tunneling solution – currently available for all TCP protocols (RDP, VNC, HTTP(S), SSH, ...).

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Portfusion

Otoroshi
Lightweight api management on top of a modern http reverse proxy
Stars: ✭ 177 (+0%)
Mutual labels:  proxy, reverse-proxy
Goproxy
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
Stars: ✭ 11,334 (+6303.39%)
Mutual labels:  tcp, reverse-proxy
Frp
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Stars: ✭ 51,746 (+29135.03%)
Mutual labels:  proxy, reverse-proxy
Contentajs
A nodejs server that proxies to Contenta CMS and holds custom code.
Stars: ✭ 90 (-49.15%)
Mutual labels:  application, proxy
Nuster
A high performance HTTP proxy cache server and RESTful NoSQL cache server based on HAProxy
Stars: ✭ 1,825 (+931.07%)
Mutual labels:  proxy, reverse-proxy
Sidedoor
SSH connection daemon for Debian/Raspbian/Ubuntu/etc
Stars: ✭ 97 (-45.2%)
Mutual labels:  proxy, reverse-proxy
Ansible Role Haproxy
Ansible Role - HAProxy
Stars: ✭ 112 (-36.72%)
Mutual labels:  proxy, reverse-proxy
Mr2
Mr.2 can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Zero-Configuration.
Stars: ✭ 1,102 (+522.6%)
Mutual labels:  proxy, tcp
Gap Proxy
gap-proxy 是一个加速网络的 SOCKS5 安全代理工具。
Stars: ✭ 144 (-18.64%)
Mutual labels:  proxy, tcp
Async Sockets Cpp
Simple thread-based asynchronous TCP & UDP Socket classes in C++.
Stars: ✭ 127 (-28.25%)
Mutual labels:  simple, tcp
Starviewer
Starviewer, a cross-platform open source medical imaging software
Stars: ✭ 83 (-53.11%)
Mutual labels:  multi-platform, gplv3
Charon Spring Boot Starter
Reverse proxy implementation in form of a Spring Boot starter.
Stars: ✭ 155 (-12.43%)
Mutual labels:  proxy, reverse-proxy
Bdtunnel
BoutDuTunnel is able to create virtual connections tunnelled in HTTP requests.
Stars: ✭ 78 (-55.93%)
Mutual labels:  proxy, tcp
Proxy
C++ TCP Proxy Server
Stars: ✭ 98 (-44.63%)
Mutual labels:  proxy, tcp
Tcptunnel
将本地内网服务器映射到公网。
Stars: ✭ 72 (-59.32%)
Mutual labels:  proxy, reverse-proxy
Reverse proxy plug
🔛 an Elixir reverse proxy Plug with HTTP/2, chunked transfer and path proxying support
Stars: ✭ 112 (-36.72%)
Mutual labels:  proxy, reverse-proxy
Noginx
High performance HTTP and reverse proxy server based on Node.js. 基于 Node.js 的高性能 HTTP 及反向代理服务器,类似nginx。
Stars: ✭ 53 (-70.06%)
Mutual labels:  proxy, reverse-proxy
Infrared
An ultra lightweight minecraft reverse proxy and idle placeholder
Stars: ✭ 59 (-66.67%)
Mutual labels:  proxy, reverse-proxy
Gobetween
☁️ Modern & minimalistic load balancer for the Сloud era
Stars: ✭ 1,631 (+821.47%)
Mutual labels:  proxy, tcp
Docker Stack This
A Docker Stack that just work. With Traefik, Socat, Portainer, Nginx, Caddy, Whoami
Stars: ✭ 149 (-15.82%)
Mutual labels:  proxy, reverse-proxy

![pf] [pf]: http://fusion.corsis.tech/i/h.png "PortFusion"

Download 1.2.1 (for Windows, Linux, OS X and FreeBSD, ...)


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

Work from home using remote desktop services circumventing corporate firewalls.

Connect to the internet through a http proxy via a gateway to a friend's intranet.

↓ home ↓
PortFusion                ] 2000      [
PortFusion 3389 localhost - 2000 home [ 3389
↑ work ↑
↓ friend ↓
PortFusion      ]        2000 [
PortFusion 3128 ] friend 2000 - server 3128
↑ you ↑

Connections to home:3389 will now be tunnelled and reach work:3389.

You only need to make home:2000 accessible from work.

Connections to you:3128 will now be tunnelled and reach server:3128.

Your friend only needs to make friend:2000 accessible.

DR DF

Build

Prerequisites

You need only one of the following rows for compilation.

Remarks OS Compilers
recommended and
used for official binaries
Windows, Linux, OSX, FreeBSD, OpenBSD, Solaris, Other GHC >= 7.4
LLVM >= 3
easy to install for
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

CPU Windows Linux OSX FreeBSD OpenBSD Solaris Other
x86-64 Get Get Get Get C C C
x86-32 Get Get C C C C
ARM B Get C C C C C
MIPS Get
Other C C C C C

CORSIS Research
D builds official binaries
B will build official binaries on demand
C can cooperate with community for builds

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 2 x .NET 4.0 managed binaries
Binary Size 1-2 MB (~400 KB compressed) 78.3 KB (34.3 KB + 44 KB)
Concurrency Model 1 Haskell thread per connection 1 OS thread per connection
Distribution Technique native sockets API and system calls of each OS Windows Communication Foundation
Distributed Proxy Modes reverse, forward reverse
Local Proxy Modes forward
Native IPv6 Support yes yes
Interactive Mode REPL in GHCi
License GPLv3 GPLv3
Availability SourceForge.net (binary)
GitHub (source)
corsis.tech (commercial)
SourceForge.net

Remember

Trademark

PortFusion™ is a trademark of Corsis Research (corsis.tech).

Trademark Policy

You may only distribute unchanged official binaries using the
PortFusion and Corsis Marks.

If you're taking full advantage of the open-source nature of Corsis
products and making significant functional changes, you may not
redistribute the fruits of your labor under any Corsis trademark,
without prior written consent from Corsis. For example, if you've
modified PortFusion, you may not use Corsis or PortFusion, in whole
or in part, in your product name. Also, it would be inappropriate
for you to say "based on Corsis PortFusion". Instead, in the interest
of complete accuracy, you could describe your executables as "based on
PortFusion technology", or "incorporating PortFusion source code."
In addition, a "Powered by PortFusion" logo will be made available.

Copyright

CORSIS PortFusion ]-[ayabusa
© 2011 - 2013     Cetin Sert

License

GPLv3

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Know

Principles

Development follows simple principles:

  1. Be concise: PortFusion is a single-file with less than 500 lines of code
  2. Be relentless: refactor and prune constantly
  3. Be open: share everything
  4. Create fully documented reusable libraries that cover common needs
  5. Use the most permissive licenses possible
  6. Report bugs in external code and work on fixes
  7. Illustrate every concept in publication-worthy detail
  8. Be friendly: provide excellent support to users

Japanese Influence: ]-[ayabusa (はやぶさ) (Hayabusa)

I had already spent a great deal of time contemplating a nice and intuitive syntax and it was only when I watched the Japanese movie Hayabusa about the same-named space probe sent to extract and bring to Earth pieces from the asteroid Itokawa that everything just fell into place:

# command line  # source file

  ] [             :><:          # serve
  - [             :-<:          # reverse
  ] -             :>-:          # forward

# > and < are reserved characters at command line
# ] and [ are reserved characters in Haskell

PortFusion owes its design goals, ambitions and 1.0 release name ]-[ayabusa to the great Japanese culture and friends.

Family

We hope to grow a whole family of software-defined networking solutions reaching all network layers, technologies and devices.

Thanks

For their continuing support and inspiration, we extend our heart-felt thanks to:

Internet Initiative Japan Commercial Users of Functional Programming Japan Aerospace Exploration Agency

Contact

corsis

[email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].