Skip to content

swiszczoo/winpinator

Repository files navigation

Winpinator

GitHub release (latest by date) License GitHub issues

Winpinator is an unofficial Windows port of Warpinator, rewritten from scratch in C++. It supports the gRPC based protocol of its Linux equivalent, as well as zeroconf/mDNS based service discovery. Due to the fact that Windows has a completely different filesystem, some Warpinator features have to be emulated, e.g. sending filesystem permissions along with the files.

Winpinator should integrate well into Windows ecosystem by supporting drag-and-drop and appearing in Windows Explorer's Send to context menu.

Screenshots

readme/screen1.png readme/screen2.png readme/screen4.png readme/screen3.png

Features

  • Answer and process mDNS queries to be able to discover Warpinator clients running on local network
  • Support both Warpinator registration protocols (v1 and v2)
  • Send and receive files, directories or any combination of those
  • Support deflate compression of data stream during transfers
  • Optionally save zone information to received files (This file came from another computer and might be blocked to help protect this computer. in File Properties dialog)
  • Store transfer history as well as all transferred file paths
  • Accept files to send as command line parameters and handle the Send to option in Windows Explorer's context menu
  • Optionally start on system startup
  • Run in background and show toast notifications when someone sends some files

Building

As for now, Visual Studio 2019 is used to compile binaries. Any newer version of VS should work, but is not actively tested. C++14 is used to develop the software.

Dependencies

Dependencies of Winpinator are managed by vcpkg, but using vcpkg during compilation is optional. In that case all header and lib files have to be installed manually. Currently, Winpinator depends on the following libraries and tools:

Installer

Winpinator uses NSIS as its install system. Currently, only one additional NSIS plugin is required for the script to compile - inetc.

Translations

Winpinator makes use of wxWidgets' built-in gettext implementation, so it should be localizable using standard set of gettext tools (like Poedit). POT template file is available at po/winpinator.pot. To make the language appear in preferences, an additional line is required to be added in res/to_copy/Languages.xml. Its format is:

    <Language code="[ISO language code, e.g. de_DE]" name="[Local name of the language, e.g. Deutsch]" flag="[flag filename, e.g. de.png]" />

Remember that you should also localize the installer by inserting a line

!insertmacro MUI_LANGUAGE "[Language name in English, e.g. German]"

and then translating all the lines right below, starting with LangString.

After translating all the strings and adding that line to Languages.xml, please submit a Pull Request.

License

GNU General Public License version 3, available here