Source: https://seerepo.com/r/safing/portmaster/built
Markdown source: https://seerepo.com/r/safing/portmaster/built.md
Description: portmaster is a Go repo built with Tauri, Gorilla, glib, Tokio, tauri-runtime-wry, and 2 more.

# What is portmaster built with?

portmaster is a Go repo built with Tauri, Gorilla, glib, Tokio, tauri-runtime-wry, and 2 more. It makes its content with gdk-pixbuf, github.com/fogleman/gg, golang.org/x/image, handlebars, zip, and 1 more, is tested with assert_matches, github.com/stretchr/testify, Protractor, and jasmine-spec-reporter, deploys with log, github.com/lmittmann/tint, and tauri-plugin-log, and uses sqlite, zombiezen.com/go/sqlite, github.com/rubenv/sql-migrate, cached, etcd, and 2 more. It has 241,137 written lines, with 176 test files.

Read on November 9, 2026, at commit bffef13.

Repository: https://github.com/safing/portmaster

## Frontend (/)

### The base

- **[Tauri](https://seerepo.com/uses/tauri)**: 12 files

### Interface

- **[tauri-plugin-window-state](https://seerepo.com/uses/tauri-plugin-window-state)**: 3 files
- **[tauri-plugin-dialog](https://seerepo.com/uses/tauri-plugin-dialog)**: 2 files
- **notify-rust**: 1 file
- **[rfd](https://seerepo.com/uses/rfd)**: 1 file
- **[tauri-plugin-notification](https://seerepo.com/uses/tauri-plugin-notification)**: 1 file
- **tauri-winrt-notification**: 1 file

## Backend (/)

### The base

- **[Gorilla](https://seerepo.com/uses/gorilla)**: 3 files
- **glib**: 2 files

### Data

- **[sqlite](https://seerepo.com/uses/sqlite)**
- **zombiezen.com/go/sqlite**: 6 files
- **github.com/rubenv/sql-migrate**: 2 files
- **cached**: 1 file
- **[etcd](https://seerepo.com/uses/etcd)**: 1 file
- **github.com/bluele/gcache**: 1 file
- **github.com/jackc/puddle/v2**: 1 file

## Support (/)

### The base

- **[Tokio](https://seerepo.com/uses/tokio)**: 4 files
- **tauri-runtime-wry**: 1 file

### Content

- **gdk-pixbuf**: 1 file
- **github.com/fogleman/gg**: 1 file
- **[golang.org/x/image](https://seerepo.com/uses/golangorg-x-image)**: 1 file
- **[handlebars](https://seerepo.com/uses/handlebars)**: 1 file
- **[zip](https://seerepo.com/uses/zip)**: 1 file

### Testing

- **assert_matches**
- **github.com/stretchr/testify**: 30 files

### Deploy

- **[log](https://seerepo.com/uses/log)**: 16 files
- **github.com/lmittmann/tint**: 1 file
- **[tauri-plugin-log](https://seerepo.com/uses/tauri-plugin-log)**: 1 file

### Tools

- **github.com/spf13/cobra**: 14 files
- **github.com/maruel/panicparse/v2**: 3 files
- **num-derive**: 3 files
- **clap_lex**: 1 file
- **github.com/davecgh/go-spew**: 1 file
- **github.com/tc-hib/winres**: 1 file

### Other

- **num**
- **rust-ini**
- **serde_derive**
- **url**
- **github.com/miekg/dns**: 28 files
- **golang.org/x/sys**: 20 files
- **windows-sys**: 20 files
- **golang.org/x/exp**: 14 files
- **serde**: 12 files
- **smoltcp**: 10 files
- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 9 files
- **serde_json**: 9 files
- **github.com/hashicorp/go-multierror**: 7 files
- **github.com/shirou/gopsutil**: 7 files
- **golang.org/x/net**: 7 files
- **golang.org/x/sync**: 6 files
- **VictoriaMetrics**: 6 files
- **github.com/google/gopacket**: 5 files
- **github.com/tidwall/sjson**: 4 files
- **Cilium**: 3 files
- **github.com/ghodss/yaml**: 3 files
- **github.com/tidwall/gjson**: 3 files
- **num-traits**: 3 files
- **reqwest**: 3 files
- **thiserror**: 3 files
- **widestring**: 3 files
- **windows**: 3 files
- **chrono**: 2 files
- **dark-light**: 2 files
- **github.com/coreos/go-iptables**: 2 files
- **github.com/gorilla/websocket**: 2 files
- **github.com/hectane/go-acl**: 2 files
- **github.com/oschwald/maxminddb-golang**: 2 files
- **github.com/vincent-petithory/dataurl**: 2 files
- **open**: 2 files
- **bytes**: 1 file
- **dataurl**: 1 file
- **dirs**: 1 file
- **futures-util**: 1 file
- **github.com/agext/levenshtein**: 1 file
- **github.com/armon/go-radix**: 1 file
- **github.com/awalterschulze/gographviz**: 1 file
- **github.com/gobwas/glob**: 1 file
- **github.com/godbus/dbus/v5**: 1 file
- **github.com/gofrs/uuid**: 1 file
- **github.com/google/shlex**: 1 file
- **github.com/mattn/go-colorable**: 1 file
- **github.com/mattn/go-isatty**: 1 file
- **github.com/mitchellh/copystructure**: 1 file
- **github.com/r3labs/diff/v3**: 1 file
- **github.com/umahmood/haversine**: 1 file
- **github.com/Xuanwo/go-locale**: 1 file
- **gopkg.in/yaml.v3**: 1 file
- **http**: 1 file
- **lazy_static**: 1 file
- **tauri-plugin-clipboard-manager**: 1 file
- **tauri-plugin-os**: 1 file
- **tauri-plugin-shell**: 1 file
- **tauri-plugin-single-instance**: 1 file
- **tauri-plugin-websocket**: 1 file
- **tokio-websockets**: 1 file
- **uuid**: 1 file
- **windows-service**: 1 file

## Frontend (desktop/angular)

### The base

- **Angular**: 14 files · [in desktop/angular/package.json](https://github.com/safing/portmaster/blob/bffef134cd709d2a74295cd8450cf0c6231bd60d/desktop/angular/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **@angular/cdk**: 1 file

## Support (desktop/angular)

### Testing

- **Protractor**: 2 files
- **jasmine-spec-reporter**: 1 file

### Tools

- **@angular-devkit/build-angular**: 2 files
- **ts-node**: 1 file

### Other

- **rxjs**: 5 files
- **zone.js**: 5 files
- **@angular/localize**: 1 file

## Frontend (desktop/angular/projects/safing/portmaster-api)

### The base

- **Angular**: 12 files · [in desktop/angular/package.json](https://github.com/safing/portmaster/blob/bffef134cd709d2a74295cd8450cf0c6231bd60d/desktop/angular/package.json)

### Styles

- **[PostCSS](https://seerepo.com/uses/postcss)**: 1 file

## Support (desktop/angular/projects/safing/portmaster-api)

### The base

- **[@tauri-apps/api](https://seerepo.com/uses/tauri-apps-api)**: 1 file

### Tools

- **@angular-devkit/build-angular**: 1 file

### Other

- **rxjs**: 11 files
- **@tauri-apps/plugin-websocket**: 1 file
- **zone.js**: 1 file

## Frontend (desktop/angular/projects/safing/ui)

### The base

- **Angular**: 38 files · [in desktop/angular/package.json](https://github.com/safing/portmaster/blob/bffef134cd709d2a74295cd8450cf0c6231bd60d/desktop/angular/package.json)

### Interface

- **[angular](https://seerepo.com/uses/angular)**: 24 files

## Support (desktop/angular/projects/safing/ui)

### Content

- **ngx-markdown**: 1 file

### Tools

- **@angular-devkit/build-angular**: 1 file

### Other

- **rxjs**: 14 files
- **zone.js**: 1 file

## Frontend (desktop/angular/src/app)

### The base

- **Angular**: 123 files · [in desktop/angular/package.json](https://github.com/safing/portmaster/blob/bffef134cd709d2a74295cd8450cf0c6231bd60d/desktop/angular/package.json)

### Interface

- **[angular](https://seerepo.com/uses/angular)**: 42 files
- **[D3](https://seerepo.com/uses/d3)**: 4 files
- **ng-zorro-antd**: 2 files
- **[topojson-client](https://seerepo.com/uses/topojson-client)**: 1 file

### Icons

- **fortawesome**: 4 files

## Support (desktop/angular/src/app)

### The base

- **[@tauri-apps/api](https://seerepo.com/uses/tauri-apps-api)**: 2 files

### Content

- **ngx-markdown**: 2 files

### Other

- **rxjs**: 58 files
- **fuse.js**: 2 files
- **data-urls**: 1 file
- **psl**: 1 file
- **[tauri-apps](https://seerepo.com/uses/tauri-apps)**: 1 file

## Frontend (desktop/angular/src/app/services)

### The base

- **Angular**: 5 files · [in desktop/angular/package.json](https://github.com/safing/portmaster/blob/bffef134cd709d2a74295cd8450cf0c6231bd60d/desktop/angular/package.json)

## Support (desktop/angular/src/app/services)

### Other

- **rxjs**: 6 files

## Other repos with a similar stack

- [unslothai/unsloth](https://seerepo.com/r/unslothai/unsloth/built): Tauri, glib, Tokio, @tauri-apps/api, tauri-plugin-window-state, tauri-plugin-dialog, tauri-plugin-notification, gdk-pixbuf, log, Tailwind CSS, PostCSS · [Compare](https://seerepo.com/compare/safing/portmaster/vs/unslothai/unsloth)
- [janhq/jan](https://seerepo.com/r/janhq/jan/built): Tauri, glib, SQLite, Tokio, @tauri-apps/api, tauri-plugin-dialog, rfd, zip, log, tauri-plugin-log, Tailwind CSS · [Compare](https://seerepo.com/compare/janhq/jan/vs/safing/portmaster)
- [t8y2/dbx](https://seerepo.com/r/t8y2/dbx/built): Tauri, SQLite, etcd, Tokio, @tauri-apps/api, tauri-plugin-window-state, tauri-plugin-dialog, zip, log, tauri-plugin-log, Tailwind CSS · [Compare](https://seerepo.com/compare/safing/portmaster/vs/t8y2/dbx)
- [farion1231/cc-switch](https://seerepo.com/r/farion1231/cc-switch/built): Tauri, SQLite, Tokio, @tauri-apps/api, tauri-plugin-window-state, tauri-plugin-dialog, zip, log, tauri-plugin-log, Tailwind CSS · [Compare](https://seerepo.com/compare/farion1231/cc-switch/vs/safing/portmaster)
- [Stirling-Tools/Stirling-PDF](https://seerepo.com/r/Stirling-Tools/Stirling-PDF/built): Tauri, Tokio, @tauri-apps/api, tauri-plugin-window-state, tauri-plugin-dialog, tauri-plugin-notification, log, tauri-plugin-log, Tailwind CSS, D3 · [Compare](https://seerepo.com/compare/safing/portmaster/vs/Stirling-Tools/Stirling-PDF)
- [agentscope-ai/QwenPaw](https://seerepo.com/r/agentscope-ai/QwenPaw/built): Tauri, Tokio, @tauri-apps/api, tauri-plugin-dialog, notify-rust, log, tauri-plugin-log, Tailwind CSS, D3, topojson-client · [Compare](https://seerepo.com/compare/agentscope-ai/QwenPaw/vs/safing/portmaster)

## Frequently asked questions

### What language is portmaster written in?

portmaster is written in Go, with 241,137 written lines.

### What framework does portmaster use?

portmaster is built with Tauri, Gorilla, glib, Tokio, tauri-runtime-wry, Angular, and @tauri-apps/api.

### What services does portmaster use?

portmaster uses sqlite, zombiezen.com/go/sqlite, github.com/rubenv/sql-migrate, cached, etcd, github.com/bluele/gcache, and github.com/jackc/puddle/v2.

### Does portmaster have tests?

Yes. portmaster has 176 test files and is tested with assert_matches, github.com/stretchr/testify, Protractor, and jasmine-spec-reporter.

### Which repos have a stack like portmaster's?

The ones that share most of its stack: unslothai/unsloth, janhq/jan, and t8y2/dbx.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
