• Stars
    star
    2,499
  • Rank 18,382 (Top 0.4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 3 months ago

Reviews

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

Repository Details

Geo-scale, next-generation peer-to-peer sharing platform built on top of OpenZiti.

zrok

zrok is a next-generation, peer-to-peer sharing platform built on top of OpenZiti, a programmable zero-trust network overlay. zrok is a Ziti Native Application.

zrok facilitates sharing resources both publicly and privately. Public sharing allows you to share zrok resources with non-zrok users over the public internet. Private sharing allows you to directly share your resources peer-to-peer with other zrok users without changing your security or firewall settings.

Like other offerings in this space, zrok allows users to share tunnels for HTTP, TCP and UDP network resources. zrok additionally allows users to easily and rapidly share files, web content, and custom resources in a peer-to-peer manner.

zrok is an extensible platform for sharing. Initially we're targeting technical users. Super-simple sharing for end users is planned and in the backlog.

zrok Web Console

Frictionless

You can be up and sharing using the zrok.io service in minutes. Here is a synopsis of what's involved:

  • Download the binary for your platform here
  • zrok invite to create an account with the service
  • zrok enable to enable your shell environment for sharing with the service

And then... sharing...

  • zrok share to share resources immediately, simply and securely

See the Concepts and Getting Started Guide for a full overview.

The zrok SDK

zrok includes an SDK that allows you to embed zrok sharing capabilities into your own applications. If you're familiar with a golang net.Conn and net.Listener, you'll be right at home with our SDK.

A Simple zrok Sharing Service

// load enabled zrok environment
root, err := environment.LoadRoot()

// request a share for your resource
shr, err := sdk.CreateShare(root, &sdk.ShareRequest{
    BackendMode: sdk.TcpTunnelBackendMode,
    ShareMode:   sdk.PrivateShareMode,
	// ...
})

// accept requests for your resource
listener, err := sdk.NewListener(shr.Token, root)

A Simple zrok Client

// load enabled zrok environment
root, err := environment.LoadRoot()

// request access to a shared zrok resource
acc, err := sdk.CreateAccess(root, &sdk.AccessRequest{ShareToken: shrToken})

// establish a connection to the resource directly
conn, err := sdk.NewDialer(shrToken, root)

This blog post provides more details for getting started with the zrok SDK.

Self-Hosting

zrok is designed to scale up to support extremely large service instances. zrok.io is a public service instance operated by NetFoundry using the same code base that is available to self-hosted environments.

zrok is also designed to scale down to support extremely small deployments. Run zrok and OpenZiti on a Raspberry Pi!

The single zrok binary contains everything you need to operate zrok environments and also host your own service instances. Just add an OpenZiti network and you're up and running.

See the Self-Hosting Guide for details on getting your own zrok service instance running.

Building

If you are interested in building zrok for yourself instead of using a released package, please refer to BUILD.md

Contributing

If you'd like to contribute back to zrok, that'd be great. Please see our CONTRIBUTING.md page and abide by the CODE_OF_CONDUCT.md.

More Repositories

1

ziti

The parent project for OpenZiti. Here you will find the executables for a fully zero trust, application embedded, programmable network
Go
1,181
star
2

goroutine-analyzer

Helps analyze goroutines. Inspired by TDA for Java and goroutine-inspect for golang.
Java
129
star
3

sdk-golang

Ziti SDK for Golang
Go
97
star
4

ziti-sdk-nodejs

An SDK for embedding zero trust into Node.JS applications and web servers to improve security.
C
69
star
5

edge

Application-embedded connectivity and zero-trust components
Go
69
star
6

fabric

Geo-scale overlay network and core network programming model
Go
49
star
7

ziti-sdk-jvm

Ziti SDK for JVM
Kotlin
42
star
8

ziti-sdk-c

A C-based sdk for delivering secure applications over a Ziti Network
C
34
star
9

runzmd

Runnable Markdown for Tutorials and Demos
Go
28
star
10

ziti-doc

Documentation describing the usage of the Ziti platform.
MDX
27
star
11

ziti-sdk-py

Ziti SDK for Python
Python
25
star
12

foundation

Foundation components for the Ziti golang ecosystem
Go
24
star
13

ziti-sdk-swift

An OpenZiti SDK for Swift (Objective-C compatible)
Swift
20
star
14

tlsuv

TLS and HTTP(s) client library for libuv
C
19
star
15

openziti.github.io

The root site for ziti documentation.
JavaScript
18
star
16

secretstream

Implementation of libsodium's secretstream in Go
Go
17
star
17

ziti-tunnel-sdk-c

C++
15
star
18

desktop-edge-win

Provides a Ziti client for Windows
C#
15
star
19

ziti-sdk-js

A JavaScript-based SDK for delivering secure browser-based web applications over a Ziti Network
JavaScript
14
star
20

ziti-sdk-csharp

An C#-based SDK to access Ziti
C#
14
star
21

ziti-tunnel-apple

Ziti mobile and desktop edge clients for Apple devices
Swift
13
star
22

ziti-browzer-bootstrapper

JavaScript
12
star
23

fablab

The Fabulous Laboratory
Go
11
star
24

ngx_ziti_module

An NGINX module that allows OpenZiti to front upstream servers
C
11
star
25

ziti-console

JavaScript
10
star
26

helm-charts

various helm charts for openziti-test-kitchen projects
Smarty
7
star
27

branding

Materials relevant to the branding of OpenZiti. Style guides, icons and other art etc
5
star
28

ziti-browzer-core

Core componentry for the Ziti browZer ecosystem (used internally by ziti-browzer-runtime and ziti-sdk-browzer)
JavaScript
5
star
29

transport

Go
5
star
30

ziti-browzer-sw

Service Worker used as part of the OpenZiti browZer stack
TypeScript
5
star
31

ngx_http_ziti_module

Non-blocking upstream module for Nginx to securely connect to a Ziti network
C
5
star
32

agent

IPC Agent client/server library for application debugging and local management
Go
5
star
33

channel

Binary messaging framework
Go
4
star
34

identity

Identity management library for the OpenZiti project
Go
3
star
35

metrics

Go
3
star
36

ziti-gitlab-webhook

JavaScript
3
star
37

storage

Library for building bbolt applications, including support for entities, queries and simple fks and indexes.
Go
3
star
38

ziti-browzer-sw-workbox-strategies

Custom Workbox Strategies used as part of the OpenZiti browZer stack
TypeScript
3
star
39

ziti-tunnel-android

Kotlin
3
star
40

ziti-mattermost-action-py

GitHub Action that posts to a Mattermost webhook endpoint over OpenZiti
Python
3
star
41

ziti-browzer-runtime

The Ziti JavaScript runtime that is auto-injected into the Page of a Zitify'd web app
JavaScript
3
star
42

zitify

C
2
star
43

zitilab

Ziti specific Fablab components for cloud deployment and testing
Go
2
star
44

edge-api

A repository for the OpenZiti Edge API Specifications
Go
2
star
45

ziti-electron-websocket

A module that intercepts WebSocket's in an Electron renderer process and routes all bi-directional traffic over a Ziti network
JavaScript
2
star
46

desktop-edge-ui

Open Ziti Desktop Edge UI Project
JavaScript
2
star
47

ziti-openwrt

Ziti package feed for OpenWRT
2
star
48

libcrypto.js

OpenSSL libcrypto compiled to Webassembly and pure JavaScript, with convenient wrappers.
C
2
star
49

ziti-sdk-android

Ziti SDK for Android
Kotlin
2
star
50

react-native-ziti

use Ziti networking in your React Native mobile app
Java
2
star
51

dilithium

Framework for high-performance streaming over message-passing systems. High-performance WAN protocols over UDP datagrams. Implemented in golang.
Go
2
star
52

ziti-sdk-browzer

A JavaScript-based SDK for delivering secure browser-based web applications over a Ziti Network
2
star
53

ziti-builder

Cross-compile builder container image for ziti-tunnel-sdk-c
Dockerfile
2
star
54

jwks

Lightweight support for interacting with JKWS endpoints
Go
1
star
55

xweb

Go powered compossible Web APIs over multiple interfaces
Go
1
star
56

desktop-edge-win-beta

A fork of https://github.com/openziti/desktop-edge-win used exclusively for "beta" releases
C#
1
star
57

ziti-browzer-edge-client

JavaScript
1
star
58

ziti-android-app

Kotlin
1
star
59

.github

1
star
60

ziti-ci

Shared infrastrure code for Ziti Golang projects
Go
1
star
61

ziti-ops

Utilities useful for people operating Ziti networks
Go
1
star
62

x509-claims

A go module that assists with retrieving claims from x509 Certificates
Go
1
star
63

ziti-webhook-action

Github Action to post a Webhook over a Ziti network
JavaScript
1
star
64

ziti-browzer-doc

The source for all Ziti browZer project documentation.
TypeScript
1
star