mycoria

package module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2024 License: BSD-3-Clause Imports: 19 Imported by: 0

README

Mycoria

Mycoria gives you the connectivity freedom of the original Internet.

  • Everyone is equal: Easily connect to anyone.
  • Everyone is welcome: Open network without bureaucracy.
  • No spooking: Everthing is authenticated.
  • No surveillance: Everything is encrypted.
  • No barriers: Connect via the Internet or extend Mycoria with your own mesh.

Design Goals

  • Keep it small and simple
  • Compatible with existing infrastructure (eg. DNS)
  • Secure by default
  • Private by default (WIP)

Main Features

  • Automatic end-to-end encryption
  • Modern cryptography
  • Smart and scalable routing (partly WIP)
  • Resolve .myco DNS (OS configuration required)
  • Rotating private addresses (WIP)
  • Dashboard (WIP)
  • Auto-Optimization/Healing of Network (for Internet overlay; WIP)
  • Simple Service Discovery (WIP)

Read more on mycoria.org.

Supported Platforms

Currently only Linux amd64 is being tested. Linux arm64 should work as well. Windows will follow soon.

We are also looking into supporting smaller devices in order to bring this to the IoT world.

Packaging and Deployment

See ./packaging.

Building

  1. Install Go

  2. Run go build in cmd/mycoria

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Instance

type Instance struct {
	*mgr.Group
	// contains filtered or unexported fields
}

Instance is an instance of a mycoria router.

func New

func New(version string, c *config.Config) (*Instance, error)

New returns a new mycoria router instance.

func (*Instance) API

func (i *Instance) API() *httpapi.API

API returns the local http API.

func (*Instance) Config

func (i *Instance) Config() *config.Config

Config returns the config.

func (*Instance) DNS added in v0.1.0

func (i *Instance) DNS() *dns.Server

DNS returns the local DNS server.

func (*Instance) FrameBuilder

func (i *Instance) FrameBuilder() *frame.Builder

FrameBuilder returns the frame builder.

func (*Instance) Identity

func (i *Instance) Identity() *m.Address

Identity returns the identity.

func (*Instance) NetStack added in v0.1.0

func (i *Instance) NetStack() *netstack.NetStack

NetStack returns the local API netstack.

func (*Instance) Peering

func (i *Instance) Peering() *peering.Peering

Peering returns the peering manager.

func (*Instance) Router

func (i *Instance) Router() *router.Router

Router returns the router.

func (*Instance) RoutingTable

func (i *Instance) RoutingTable() *m.RoutingTable

RoutingTable returns the routing table.

func (*Instance) State

func (i *Instance) State() *state.State

State returns the state manager.

func (*Instance) Storage added in v0.1.0

func (i *Instance) Storage() storage.Storage

Storage returns the storage.

func (*Instance) Switch

func (i *Instance) Switch() *switchr.Switch

Switch returns the switch.

func (*Instance) TunDevice

func (i *Instance) TunDevice() *tun.Device

TunDevice returns the tun device.

func (*Instance) Version

func (i *Instance) Version() string

Version returns the version.

Directories

Path Synopsis
api
dns
cmd
m
Package mgr provides simple managing of flow control and logging.
Package mgr provides simple managing of flow control and logging.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL