• Stars
    star
    156
  • Rank 231,098 (Top 5 %)
  • Language
    C
  • License
    Mozilla Public Li...
  • Created over 2 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ZeroTier Desktop Tray Application and UI

ZeroTier Desktop Tray Application and User Interface

This is the system tray application and user interface for controlling a local ZeroTier service on Windows, macOS, and (soon) Linux systems.

Building

Only macOS and Windows are currently supported. Linux may build but there are still outstanding issues. We're working on full Linux support at least for popular Linux desktop environments that support relatively standard tray application APIs.

macOS

Prerequisites

  • Xcode with standard command line tools and SDKs.
  • Rust (and cargo) with targets x86_64-apple-darwin and aarch64-apple-darwin installed to enable universal binaries to be built.
  • The Meson/Ninja build system (for libui-ng).

To build on macOS you should just be able to type make from the project root. If all the necessary dependencies are present it should build a ZeroTier.app application in the current directory.

Windows

Prerequisites

  • Microsoft Visual Studio 2022 with both 32-bit and 64-bit X86 targets and with appropriate desktop application SDKs.
  • Rust (and cargo) with targets x86_64-pc-windows-msvc and i686-pc-windows-msvc installed.
  • The Meson/Ninja build system (for libui-ng).
  • GCC/G++ with support for both 64-bit and 32-bit builds. Yes, we need both Visual Studio and GCC with GNU make.

To build native applications for Windows, just type make. This assumes that GNU make, GCC, and Cargo are in your path. The result will be two native EXEs in target\x86_64-pc-windows-msvc\release and target\i686-pc-windows-msvc\release. We plan to add native support for Windows on ARM64 soon, both for this UI application and for ZeroTier itself.

Linux, FreeBSD, Other Open Source Desktops

Prerequisites

  • Rust (and cargo) with 2021 edition support
  • gtk-3
  • gdk-3
  • gobject-2.0
  • glib-2.0
  • libappindicator3

Directly Incorporated Third Party Code

The ZeroTier desktop UI uses forked and slightly modified versions of the following third party code:

  • Tray by Serge Zaitsev, forked to slightly modify behavior in regard to loop timeouts and Mac application settings. We also manually applied a pull request that fixes builds on ARM64 macOS. (MIT license)
  • LibUI-ng by Pietro Gagliardi and others. (MIT license)

Other third party dependencies are included in the normal way. See Cargo.toml for these.

License

Licensed under the Mozilla Public License (MPL) version 2.0.

More Repositories

1

ZeroTierOne

A Smart Ethernet Switch for Earth
C++
12,880
star
2

lf

Fully Decentralized Fully Replicated Key/Value Store
C
887
star
3

awesome-zerotier

A collection of things you can do with ZeroTier, how-to guides, and more
704
star
4

zeronsd

A DNS server for ZeroTier users
Rust
460
star
5

ZeroTierNAS

NAS packages for ZeroTier
JavaScript
427
star
6

toss

Dead simple LAN file transfers from the command line
C
391
star
7

libzt

Encrypted P2P sockets over ZeroTier
C++
124
star
8

terraform-provider-zerotier

Terraform provider for controlling ZeroTier Central
Go
62
star
9

install.zerotier.com

Source for https://install.zerotier.com curl|bash installer
Shell
54
star
10

zerotier-systemd-manager

Manages systemd per-interface DNS resolution for zeronsd
Go
51
star
11

github-action

A Github Action for ZeroTier
JavaScript
41
star
12

edge

ZeroTier Edge software and root filesystem (AARCH64)
Perl
38
star
13

cathode

Demo App for ZeroTier SDK
C
27
star
14

pylon

SOCKS5 Proxy to and from your LAN and ZeroTier Network
C++
24
star
15

terraform-multicloud-quickstart

A tutorial using ZeroTier + Terraform on multiple clouds
HCL
23
star
16

dumb

Dumb User Mode Bridge
C
21
star
17

tetanus

ZeroTier in (almost) pure Rust WORK IN PROGRESS
Rust
16
star
18

zerotier-synology

Dockerfile
15
star
19

zssp

Rust
13
star
20

go-ztcentral

Golang Client for ZeroTier Central
Go
13
star
21

chef-zerotier

Chef recipe for ZeroTier One
Ruby
11
star
22

coyote

A lightweight, embeddable ACME server wwith traits management for storage and challenges
Rust
10
star
23

homebrew-tap

Homebrew tap for ZeroTier
Ruby
10
star
24

terraform-quickstart

HCL
8
star
25

docs

ZeroTier docs site
HTML
8
star
26

go-ztidentity

ZeroTier Identity Generation Library for Go
Go
8
star
27

nat-emulation

A rusty NAT emulation library.
Rust
6
star
28

terraform-zerotier-network

HCL
5
star
29

zeronsd-quickstart

5
star
30

ratpack

A simpleton's HTTP framework for rust-lang
Rust
5
star
31

ztchooks

Primitives for serializing and verifying hooks fired from ZeroTier Central
Go
3
star
32

crypto-glue

Security utility functions and cryptographic API glue code.
Rust
3
star
33

terraform-zerotier-member

HCL
2
star
34

sequential-exchange

The reference implementation of the Sequential Exchange Protocol
Rust
2
star
35

go-zerotier-one

ZeroTierOne service API via deepmap/oapi-codegen
Shell
2
star
36

identity

ZeroTier legacy V1 (x25519) and new (p384) identity and address implementations with common traits.
Rust
2
star
37

zerotier-sockets-apple-framework

Use a ZeroTier node in your macOS, iOS, iPadOS Swift or Objective-C application
C++
1
star
38

common-utils

Rust language common utilities used by multiple ZeroTier crates in Rust.
Rust
1
star
39

udwee

Fast UDP I/O library
Rust
1
star
40

ca_injector

Certificate Authority injector library for Rust
Rust
1
star
41

zerotier-rust-api

Rust API crates for Central and ZeroTierOne
Rust
1
star
42

zt

Rust
1
star
43

helm-charts

ZeroTier
Smarty
1
star
44

ztchooks-ts

Hook verification for hooks fired from ZeroTier Central
TypeScript
1
star
45

zerotier-one-api-spec

ZeroTier
TypeScript
1
star