You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Nim NAT traversal using wrappers for miniupnpc and libnatpmp
Installation
This repository uses submodules for
miniupnp and
libnatpmp, so either clone it all in
one go with git clone --recurse-submodules <REPO_URL> or clone it normally
and then run git submodule update --init --recursive.
See the examples directory for some generic usage.
A real-world example, complete with periodic port mapping renewal in a separate thread, is available in nim-eth and nimbus.
By default, your code will be linked to bundled static libraries. If you want to dynamically link against your system libraries,
pass the "-d:miniupnpcUseSystemLibs" and/or "-d:libnatpmpUseSystemLibs" flags to the Nim compiler.
Let's see both scenarios in action:
nimble buildBundledLibs
# statically linked against the bundled libminiupnpc.a:
nim c -r -f examples/miniupnpc_test.nim
# dynamically linked against the system libminiupnpc.so:
nim c -r -f -d:miniupnpcUseSystemLibs examples/miniupnpc_test.nim
# statically linked against the bundled libnatpmp.a:
nim c -r -f examples/natpmp_test.nim
# dynamically linked against the system libnatpmp.so:
nim c -r -f -d:libnatpmpUseSystemLibs examples/natpmp_test.nim
TODO
miniupnpc:
add IPv6 pinhole helper procs for the Miniupnp type
License
These wrappers are licensed and distributed under either of