lolocohen / forwarder4j Goto Github PK
View Code? Open in Web Editor NEWA multihoming TCP port forwarder written in Java
License: Apache License 2.0
A multihoming TCP port forwarder written in Java
License: Apache License 2.0
The idea is to make the usual socket I/O options tunable from the configuration:
These confiugrable settings will allow a fine tuning of the performance of Fowrarder4j
Currently the configuration of the port forwarding is done in a properties file, with entries of type forwarder4j.service.<local_port> = <host>:<port>
It would be nice to be able to also define entries through command line arguments, for instance:
java -cp ... org.forwarder4j.Forwarder <local_port1>=<host1>:<port1> ... <local_portN>=<hostN>:<portN>
Entries defined via command line arguments and in the ocnfig file would all be used, with those in the command line taking precedence in case of duplicate local port entries.
Incorrectly formatted entries would be discarded and a warning logged.
This will make scripting the tool much easier, and allow easier integration in automated processes.
Are you foreseeing any hurtles or drawbacks?
No
It would be nice to be able to list defined entries, add new ones, modify or delete existing ones, while forward4j is running.
Are you foreseeing any hurtles or drawbacks?
This will probably compelxify the code, with the administration part possibly bigger than the runtmle part.
./f4j-admin.sh list
to list all entries, possiblly with some kind of expression to filter the results./f4j-admin.sh +local_port=host:port
to add a new entry or change an existing one./f4j-admin.sh -local_port
to remove an existing entry|
, ;
or ,
?)The idea is to provide a "quiet" mode to the admin interface, such that its output is stripped of everything that is not strictly necessary. This will allow piping the output to other commands or executables.
v0.5
The shell scripts are currently named run.bat and run.sh, I propose to rename them to f4j.bat and f4j.sh, respectively. That's more distinctive while remaining easy and quick to type :)
in upcoming v0.3 forward.
The log4-1.2.17.jar file is currently the biggest lib (479 KB) in the fowrwarder4j distribution. In fact, it's about 5 times bigger than the addition of all other jars, including forwarder4j-x.y.z.jar!
I propose to remove the runtime dependency on log4j and use jdk logging instead. It only requires a pom.xml and logging configuration change, since the code uses the slf4j wrapper.
v0.3.0+
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.