lorawan-stack

module
v3.0.0-pre.0...-f1e8a59 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2018 License: Apache-2.0

README

The Things Network Stack for LoRaWAN

Build Status Coverage Status GoDoc

The Things Network Stack for LoRaWAN is an open-source LoRaWAN network server suitable for large, global public networks as well as smaller private networks.

LoRaWAN is a protocol for low-power wide area networks. It allows for large scale Internet of Things deployments where low-powered devices efficiently communicate with Internet-connected applications over long range wireless connections.

Features

  • LoRaWAN 1.1 Network Server
    • Support for Class A devices
    • Support for Class B devices
    • Support for Class C devices
    • Support for ABP devices
    • Support for MAC Commands
    • Support for Adaptive Data Rate
  • LoRaWAN 1.1 Application Server
    • Payload conversion of well-known payload formats
    • Payload conversion using custom JavaScript functions
    • MQTT Pub/Sub API
  • LoRaWAN 1.1 Join Server
    • Over The Air Activation
  • LoRaWAN 1.0 compatibility
  • OAuth 2.0 Identity Server
    • User Management
    • ACLs
  • GRPC APIs
  • HTTP APIs
  • Web Interface
    • Application management and traffic
    • End device management, status and traffic
    • Gateway management, status and traffic

Installation

Version 3 of The Things Network Stack for LoRaWAN is still under heavy development. We currently recommend to use version 2 instead.

Downloads

For stable versions, see the Releases page on Github.

For the latest master, you can download pre-compiled binaries:

File Name Operating System Architecture
ttn-lw-darwin-amd64.zip macOS amd64
ttn-lw-linux-amd64.zip linux amd64
ttn-lw-linux-386.zip linux 386
ttn-lw-linux-arm.zip linux arm
ttn-lw-windows-amd64.zip windows amd64
ttn-lw-windows-386.zip windows 386

Documentation

Support

  • Our forums contain a massive amount of information and has great search
  • You can chat on Slack, an invite can be requested from your account page
  • Hosted solutions, as well as commercial support and consultancy are offered by The Things Industries

Directories

Path Synopsis
cmd
ttn-lw-application-server command
ttn-lw-application-server is the binary that runs the Application Server of The Things Network Stack for LoRaWAN.
ttn-lw-application-server is the binary that runs the Application Server of The Things Network Stack for LoRaWAN.
ttn-lw-application-server/commands
Package commands implements the commands for the ttn-lw-application-server binary.
Package commands implements the commands for the ttn-lw-application-server binary.
ttn-lw-console command
ttn-lw-gateway-server command
ttn-lw-gateway-server is the binary that runs the Gateway Server of The Things Network Stack for LoRaWAN.
ttn-lw-gateway-server is the binary that runs the Gateway Server of The Things Network Stack for LoRaWAN.
ttn-lw-gateway-server/commands
Package commands implements the commands for the ttn-lw-gateway-server binary.
Package commands implements the commands for the ttn-lw-gateway-server binary.
ttn-lw-identity-server command
ttn-lw-identity-server is the binary that runs the Identity Server of The Things Network Stack for LoRaWAN.
ttn-lw-identity-server is the binary that runs the Identity Server of The Things Network Stack for LoRaWAN.
ttn-lw-identity-server/commands
Package commands implements the commands for the ttn-lw-identity-server binary.
Package commands implements the commands for the ttn-lw-identity-server binary.
ttn-lw-join-server command
ttn-lw-join-server is the binary that runs the Join Server of The Things Network Stack for LoRaWAN.
ttn-lw-join-server is the binary that runs the Join Server of The Things Network Stack for LoRaWAN.
ttn-lw-join-server/commands
Package commands implements the commands for the ttn-lw-join-server binary.
Package commands implements the commands for the ttn-lw-join-server binary.
ttn-lw-network-server command
ttn-lw-network-server is the binary that runs the Network Server of The Things Network Stack for LoRaWAN.
ttn-lw-network-server is the binary that runs the Network Server of The Things Network Stack for LoRaWAN.
ttn-lw-network-server/commands
Package commands implements the commands for the ttn-lw-network-server binary.
Package commands implements the commands for the ttn-lw-network-server binary.
ttn-lw-stack command
ttn-lw-stack is the binary that runs the entire The Things Network Stack for LoRaWAN.
ttn-lw-stack is the binary that runs the entire The Things Network Stack for LoRaWAN.
ttn-lw-stack/commands
Package commands implements the commands for the ttn-lw-stack binary.
Package commands implements the commands for the ttn-lw-stack binary.
pkg
applicationregistry
Package applicationregistry contains the implementation of an application registry service.
Package applicationregistry contains the implementation of an application registry service.
auth
Package auth provides methods to generate valid authorization values and to also decode them.
Package auth provides methods to generate valid authorization values and to also decode them.
auth/cluster
Package cluster contains cluster authentication-related utilities.
Package cluster contains cluster authentication-related utilities.
auth/pbkdf2
Package pbkdf2 implements the PBKDF2 algorithm method used to hash passwords.
Package pbkdf2 implements the PBKDF2 algorithm method used to hash passwords.
auth/rights
Package rights implements rights fetching and checking.
Package rights implements rights fetching and checking.
band
Package band contains structs to handle regional bands
Package band contains structs to handle regional bands
cluster
Package cluster defines an interface for clustering network components and provides a simple implementation.
Package cluster defines an interface for clustering network components and provides a simple implementation.
component
Package component contains the methods and structures common to all components.
Package component contains the methods and structures common to all components.
config
Package config wraps Viper.
Package config wraps Viper.
config/example command
example cobra command with config.
example cobra command with config.
crypto
Package crypto implements LoRaWAN crypto.
Package crypto implements LoRaWAN crypto.
deviceregistry
Package deviceregistry contains the implementation of a device registry service.
Package deviceregistry contains the implementation of a device registry service.
devicerepository
Package devicerepository allows to fetch device data from the Device Repository.
Package devicerepository allows to fetch device data from the Device Repository.
encoding/lorawan
Package lorawan provides LoRaWAN decoding/encoding interfaces.
Package lorawan provides LoRaWAN decoding/encoding interfaces.
errorcontext
Package errorcontext implements a Context that can be canceled with a specific error instead of the usual context.Canceled.
Package errorcontext implements a Context that can be canceled with a specific error instead of the usual context.Canceled.
errors
Package errors implements a common interface for errors to be communicated within and between components of a multi-service architecture.
Package errors implements a common interface for errors to be communicated within and between components of a multi-service architecture.
errorsv3
Package errors implements rich errors that carry contextual information such as stack traces, causality and attributes.
Package errors implements rich errors that carry contextual information such as stack traces, causality and attributes.
events
Package events implements event handling through a PubSub interface.
Package events implements event handling through a PubSub interface.
events/fs
Package fs implements watching files for changes.
Package fs implements watching files for changes.
events/redis
Package redis implements an events.PubSub implementation that uses Redis PubSub.
Package redis implements an events.PubSub implementation that uses Redis PubSub.
fetch
Package fetch offers abstractions to fetch a file with the same method, regardless of a location (filesystem, HTTP...).
Package fetch offers abstractions to fetch a file with the same method, regardless of a location (filesystem, HTTP...).
fillcontext
Package fillcontext implements a mechanism to fill contexts.
Package fillcontext implements a mechanism to fill contexts.
frequencyplans
Package frequencyplans contains abstractions to fetch and manipulate frequency plans.
Package frequencyplans contains abstractions to fetch and manipulate frequency plans.
gatewayserver
Package gatewayserver contains the structs and methods necessary to start a gRPC Gateway Server
Package gatewayserver contains the structs and methods necessary to start a gRPC Gateway Server
gatewayserver/scheduling
Package scheduling offer convenience methods to manage RF packets that must respect scheduling constraints.
Package scheduling offer convenience methods to manage RF packets that must respect scheduling constraints.
gogoproto
Package gogoproto implements conversions from well-known gogo/profobuf types.
Package gogoproto implements conversions from well-known gogo/profobuf types.
goproto
Package goproto implements conversions from well-known golang/profobuf types.
Package goproto implements conversions from well-known golang/profobuf types.
gpstime
Package gpstime provides utilities to work with GPS time.
Package gpstime provides utilities to work with GPS time.
i18n
Package i18n helps with internationalization of registered messages.
Package i18n helps with internationalization of registered messages.
identityserver
Package identityserver provides the implementation of the Identity Server network component.
Package identityserver provides the implementation of the Identity Server network component.
identityserver/db
Package db implements a reusable interface around sql databases.
Package db implements a reusable interface around sql databases.
identityserver/db/migrations
Package migrations provides an implementation of a reusable migrations registry.
Package migrations provides an implementation of a reusable migrations registry.
identityserver/email
Package email provides a generic interface to send emails.
Package email provides a generic interface to send emails.
identityserver/email/mock
Package mock provides a test email provider that is used in tests.
Package mock provides a test email provider that is used in tests.
identityserver/email/sendgrid
Package sendgrid provides the implementation of an email sender using SendGrid.
Package sendgrid provides the implementation of an email sender using SendGrid.
identityserver/email/templates
Package templates provides a generic interface that templates used in emails must implements.
Package templates provides a generic interface that templates used in emails must implements.
identityserver/store
Package store provides generic interfaces to work with entities in databases.
Package store provides generic interfaces to work with entities in databases.
identityserver/store/sql
Package sql provides an implementation of the store using SQL databases.
Package sql provides an implementation of the store using SQL databases.
identityserver/store/sql/migrations
Package migrations contains an initialized registry with the SQL schema migrations.
Package migrations contains an initialized registry with the SQL schema migrations.
joinserver
Package joinserver provides a LoRaWAN 1.1-compliant Join Server implementation.
Package joinserver provides a LoRaWAN 1.1-compliant Join Server implementation.
log
Package log contains all the structs to log TTN.
Package log contains all the structs to log TTN.
log/handler/memory
Package memory implements a pkg/log.Handler that saves all entries in process memory
Package memory implements a pkg/log.Handler that saves all entries in process memory
log/handler/multi
Package multi implements a pkg/log.Handler that applies every log message on multiple Handlers
Package multi implements a pkg/log.Handler that applies every log message on multiple Handlers
log/middleware/filter
Package filter implements a pkg/log.Handler that only logs fields that match the specified filters
Package filter implements a pkg/log.Handler that only logs fields that match the specified filters
log/middleware/sentry
Package sentry implements a pkg/log.Handler that sends errors to Sentry
Package sentry implements a pkg/log.Handler that sends errors to Sentry
log/test
Package test exposes simple implementations of log interfaces that can be used for testing.
Package test exposes simple implementations of log interfaces that can be used for testing.
marshaling
Package marshaling implements marshaling, unmarshaling and diff functionality for structs and maps.
Package marshaling implements marshaling, unmarshaling and diff functionality for structs and maps.
messageprocessors
Package messageprocessors provides interfaces and implementations for processing uplink and downlink messages.
Package messageprocessors provides interfaces and implementations for processing uplink and downlink messages.
messageprocessors/cayennelpp
Package cayennelpp contains the CayenneLPP payload formatter message processors.
Package cayennelpp contains the CayenneLPP payload formatter message processors.
messageprocessors/javascript
Package javascript contains the Javascript payload formatter message processors.
Package javascript contains the Javascript payload formatter message processors.
metrics
Package metrics creates the metrics registry and exposes some common metrics.
Package metrics creates the metrics registry and exposes some common metrics.
mqtt
Package mqtt contains MQTT-related utilities.
Package mqtt contains MQTT-related utilities.
networkserver
Package networkserver provides a LoRaWAN 1.1-compliant Network Server implementation.
Package networkserver provides a LoRaWAN 1.1-compliant Network Server implementation.
random
Package random implements goroutine-safe utilities on top of a secure random source.
Package random implements goroutine-safe utilities on top of a secure random source.
rpcclient
Package rpcclient contains the default options for TTN gRPC clients.
Package rpcclient contains the default options for TTN gRPC clients.
rpcmetadata
Package rpcmetadata contains utilities for transporting common request metadata over gRPC.
Package rpcmetadata contains utilities for transporting common request metadata over gRPC.
rpcmiddleware/fillcontext
Package fillcontext implements a gRPC middleware that fills global context into a call context.
Package fillcontext implements a gRPC middleware that fills global context into a call context.
rpcmiddleware/hooks
Package hooks implements a gRPC middleware that executes service and method hooks.
Package hooks implements a gRPC middleware that executes service and method hooks.
rpcmiddleware/rpclog
Package rpclog implements a gRPC logging middleware.
Package rpclog implements a gRPC logging middleware.
rpcmiddleware/sentry
Package sentry implements gRPC middleware that forwards errors in RPCs to Sentry
Package sentry implements gRPC middleware that forwards errors in RPCs to Sentry
rpcmiddleware/warning
Package warning communicates warnings over gRPC headers.
Package warning communicates warnings over gRPC headers.
rpcserver
Package rpcserver initializes The Things Network's base gRPC server
Package rpcserver initializes The Things Network's base gRPC server
scripting
Package scripting provides a generic abstraction layer for running scripts at runtime.
Package scripting provides a generic abstraction layer for running scripts at runtime.
scripting/javascript
Package javascript implements a Javascript scripting engine.
Package javascript implements a Javascript scripting engine.
store
Package store defines generic storage interfaces and provides deterministic data encoding and decoding mechanisms, as well as utilities associated with this process.
Package store defines generic storage interfaces and provides deterministic data encoding and decoding mechanisms, as well as utilities associated with this process.
store/mapstore
Package mapstore provides an example implementation of store.TypedMapStore, which is used for testing.
Package mapstore provides an example implementation of store.TypedMapStore, which is used for testing.
store/redis
Package redis provides implementations of interfaces defined in store.
Package redis provides implementations of interfaces defined in store.
store/storetest
Package storetest provides a test suite to test implementations of interfaces defined in store.
Package storetest provides a test suite to test implementations of interfaces defined in store.
toa
Package toa provides methods for computing a LoRaWAN packet's time-on-air
Package toa provides methods for computing a LoRaWAN packet's time-on-air
ttnpb
Package ttnpb is a reverse proxy.
Package ttnpb is a reverse proxy.
types
Package types contains basic types that are used in The Things Network's protobuf messages.
Package types contains basic types that are used in The Things Network's protobuf messages.
unique
Package unique provides functionality for working with unique identifiers of entities within a context.
Package unique provides functionality for working with unique identifiers of entities within a context.
util/randutil
Package randutil provides pseudo-random number generator utilities.
Package randutil provides pseudo-random number generator utilities.
util/rpctest
Package rpctest is a generated protocol buffer package.
Package rpctest is a generated protocol buffer package.
validate
Package validate implements validation functions, usually used RPC message validation.
Package validate implements validation functions, usually used RPC message validation.
version
Package version contains version and build variables set by the CI process.
Package version contains version and build variables set by the CI process.
web
tools module

Jump to

Keyboard shortcuts

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