A free, lightweight and non-intrusive firewall
Website » | Download »
TinyWall is a free, lightweight, and non-intrusive, secure by default firewall for Windows. Built to just simply sit in your system tray, quietly blocking any application you did not explicitly allow network access. TinyWall installs no kernel drivers, so it cannot negatively influence system stability. It also repects your privacy and collects absolutely no data about the user or their computer.
This repository houses the source code of TinyWall as found at its official website.
- Microsoft Visual Studio 2026 (or 2022)
- Wix v3.14 Toolset
- Visual Studio extension for Wix v3 Toolset
- Open the solution file in Visual Studio and compile the
TinyWallproject. The other projects referenced inside the solution need not be built separately as they will be statically compiled into the application. - Done.
- Adjust the individual JSON files in the
TinyWall\Databasefolder. These are the source files for TinyWall's database of known applications, as well as for its built-in "Special Exceptions". - Use the embedded commandline utility in TinyWall to create a single-file database. A file called
profiles.jsonwill be created. Call it like:
TinyWall.exe database-creator /source-folder <path to TinyWall\Database> /output-folder <any-folder> - Copy the output file to
TinyWall\bin\Debugto make use of it in Debug builds. For releases, see further below. - Done.
The setup is built by the WiX-based setup project. The setup project though needs its source files staged in a specific directory structure under MsiSetup\Sources, so all the binaries and assets like the database, the hosts file, docs, license etc. need to be copied there.
All these and further actions are taken care of by a fully automated build script. Besides correctly staging the files for you, it will make sure the resx language resources are in their correct form, it will take care of signing (can be skipped using --skip-sign) and will create a complete update package for server distribution for the built-in updater.
To use the automated build-script:
- Copy
build-config.ini.templatetobuild-config.ini. - Edit
build-config.inito your liking. - Call
build.ps1from a PowerShell. - Done. You'll find the built setup files in MsiSetup\bin.
The build script is commented, and following through its numbered steps makes it easy to work out what it is doing. Only if you're interested though, because you don't need to know any of that. Generally speaking, you can just call build.ps1 and enjoy its fully built outputs.
If you get the an error about one or more resx files being different, compare the differing resx files in the staging\tmp folder with their originals. If the change is expected, overwrite the originals, then execute the build script again.
There is also a CI build workflow in the repository, but only for external contributors who want to use it. It is not used for official releases. It also might or might not be out of date, as it is only maintained by contributors. The build.ps1 script remains the only ground-truth for official build and release steps.
Feel free to open issues, feature- or pull-requests. I kindly ask for patience though, as TinyWall is in maintenance mode and my responses are often delayed. Nevertheless all issues and requests are looked at.
New features are more likely to get implemented if you provide the necessary code changes yourself. The process for that is the same as for most other projects here on GitHub, in short:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request on GitHub
For complex features or large changes, please contact me first if your changes are still within the vision of TinyWall staying small, efficient and simple.
If your goal with forking is not code contribution but to build and distribute your own binaries, please choose a name dissimilar to "TinyWall" to avoid confusing users.
| Contents in | Maintainer | Origin | License |
|---|---|---|---|
| Microsoft.Samples\TaskDialog\ | KevinGre | link (archive.org) | Public Domain |
| Microsoft.Samples\Privilege.cs | Mark Novak | link | see Privilege.cs.LICENSE |
| DarkModeCS.cs | BlueMystic | link | MIT |
| Everything else | Károly Pados | this repo | GPLv3 |
Károly Pados - find e-mail at the bottom of the project website
Website: https://tinywall.pados.hu