mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-03 08:20:46 +00:00
Update Rust, Diesel CLI and dev. environment.
This commit is contained in:
parent
38d544a5f7
commit
3b95a413a6
2
Makefile
2
Makefile
@ -8,7 +8,7 @@ dist:
|
|||||||
# Install dev dependencies
|
# Install dev dependencies
|
||||||
dev-dependencies:
|
dev-dependencies:
|
||||||
cargo install cross --version 0.2.5
|
cargo install cross --version 0.2.5
|
||||||
cargo install diesel_cli --version 2.1.1 --no-default-features --features postgres
|
cargo install diesel_cli --version 2.2.1 --no-default-features --features postgres
|
||||||
cargo install cargo-deb --version 1.43.1
|
cargo install cargo-deb --version 1.43.1
|
||||||
cargo install cargo-generate-rpm --version 0.12.1
|
cargo install cargo-generate-rpm --version 0.12.1
|
||||||
|
|
||||||
|
@ -1,222 +1,242 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "chirpstack"
|
name = "chirpstack"
|
||||||
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
|
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
|
||||||
repository = "https://github.com/chirpstack/chirpstack"
|
repository = "https://github.com/chirpstack/chirpstack"
|
||||||
homepage = "https://www.chirpstack.io/"
|
homepage = "https://www.chirpstack.io/"
|
||||||
version = "4.8.1"
|
version = "4.8.1"
|
||||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
publish = false
|
publish = false
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# CLI interface
|
# CLI interface
|
||||||
clap = { version = "4.5", features = ["derive"] }
|
clap = { version = "4.5", features = ["derive"] }
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||||
serde_yaml = "0.9"
|
serde_yaml = "0.9"
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
serde_urlencoded = "0.7"
|
serde_urlencoded = "0.7"
|
||||||
humantime-serde = "1.1"
|
humantime-serde = "1.1"
|
||||||
toml = "0.8"
|
toml = "0.8"
|
||||||
handlebars = "5.1"
|
handlebars = "5.1"
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
email_address = "0.2"
|
email_address = "0.2"
|
||||||
diesel = { version = "2.1", features = [
|
diesel = { version = "2.1", features = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"uuid",
|
"uuid",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"numeric",
|
"numeric",
|
||||||
"64-column-tables",
|
"64-column-tables",
|
||||||
"postgres_backend",
|
"postgres_backend",
|
||||||
] }
|
] }
|
||||||
diesel_migrations = { version = "2.1" }
|
diesel_migrations = { version = "2.1" }
|
||||||
diesel-async = { version = "0.4", features = ["deadpool", "postgres", "async-connection-wrapper"] }
|
diesel-async = { version = "0.4", features = [
|
||||||
tokio-postgres = "0.7"
|
"deadpool",
|
||||||
tokio-postgres-rustls = "0.11"
|
"postgres",
|
||||||
bigdecimal = "0.4"
|
"async-connection-wrapper",
|
||||||
redis = { version = "0.25.2", features = [ "tls-rustls", "tokio-rustls-comp"] }
|
] }
|
||||||
deadpool-redis = { version = "0.15", features = ["cluster"] }
|
tokio-postgres = "0.7"
|
||||||
|
tokio-postgres-rustls = "0.11"
|
||||||
|
bigdecimal = "0.4"
|
||||||
|
redis = { version = "0.25.2", features = ["tls-rustls", "tokio-rustls-comp"] }
|
||||||
|
deadpool-redis = { version = "0.15", features = ["cluster"] }
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
tracing-subscriber = { version = "0.3", features = [
|
tracing-subscriber = { version = "0.3", features = [
|
||||||
"fmt",
|
"fmt",
|
||||||
"ansi",
|
"ansi",
|
||||||
"json",
|
"json",
|
||||||
], default-features = true }
|
], default-features = true }
|
||||||
|
|
||||||
# ChirpStack API definitions
|
# ChirpStack API definitions
|
||||||
chirpstack_api = { path = "../api/rust", features = ["default", "internal", "diesel"] }
|
chirpstack_api = { path = "../api/rust", features = [
|
||||||
lrwn = { path = "../lrwn", features = ["serde", "diesel", "regions", "crypto"] }
|
"default",
|
||||||
backend = { path = "../backend" }
|
"internal",
|
||||||
|
"diesel",
|
||||||
|
] }
|
||||||
|
lrwn = { path = "../lrwn", features = [
|
||||||
|
"serde",
|
||||||
|
"diesel",
|
||||||
|
"regions",
|
||||||
|
"crypto",
|
||||||
|
] }
|
||||||
|
backend = { path = "../backend" }
|
||||||
|
|
||||||
# HTTP
|
# HTTP
|
||||||
reqwest = { version = "0.12", features = [
|
reqwest = { version = "0.12", features = [
|
||||||
"json",
|
"json",
|
||||||
"rustls-tls-native-roots",
|
"rustls-tls-native-roots",
|
||||||
], default-features = false }
|
], default-features = false }
|
||||||
|
|
||||||
# Integrations
|
# Integrations
|
||||||
aws-sign-v4 = "0.3"
|
aws-sign-v4 = "0.3"
|
||||||
hmac = "0.12"
|
hmac = "0.12"
|
||||||
sha2 = "0.10"
|
sha2 = "0.10"
|
||||||
urlencoding = "2.1"
|
urlencoding = "2.1"
|
||||||
geohash = "0.13"
|
geohash = "0.13"
|
||||||
gcp_auth = "0.11"
|
gcp_auth = "0.11"
|
||||||
lapin = "2.3"
|
lapin = "2.3"
|
||||||
tokio-executor-trait = "2.1"
|
tokio-executor-trait = "2.1"
|
||||||
tokio-reactor-trait = "1.1"
|
tokio-reactor-trait = "1.1"
|
||||||
rdkafka = { version = "0.36", default-features = false, features = ["tokio", "cmake-build"] }
|
rdkafka = { version = "0.36", default-features = false, features = [
|
||||||
|
"tokio",
|
||||||
|
"cmake-build",
|
||||||
|
] }
|
||||||
|
|
||||||
# gRPC and Protobuf
|
# gRPC and Protobuf
|
||||||
tonic = "0.11"
|
tonic = "0.11"
|
||||||
tonic-web = "0.11"
|
tonic-web = "0.11"
|
||||||
tonic-reflection = "0.11"
|
tonic-reflection = "0.11"
|
||||||
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
|
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
|
||||||
tokio-stream = "0.1"
|
tokio-stream = "0.1"
|
||||||
prost-types = "0.12"
|
prost-types = "0.12"
|
||||||
prost = "0.12"
|
prost = "0.12"
|
||||||
pbjson-types = "0.6"
|
pbjson-types = "0.6"
|
||||||
|
|
||||||
# gRPC and HTTP multiplexing
|
# gRPC and HTTP multiplexing
|
||||||
warp = { version = "0.3", features = ["tls"], default-features = false }
|
warp = { version = "0.3", features = ["tls"], default-features = false }
|
||||||
hyper = "0.14"
|
hyper = "0.14"
|
||||||
tower = "0.4"
|
tower = "0.4"
|
||||||
futures = "0.3"
|
futures = "0.3"
|
||||||
futures-util = "0.3"
|
futures-util = "0.3"
|
||||||
http = "0.2"
|
http = "0.2"
|
||||||
http-body = "0.4"
|
http-body = "0.4"
|
||||||
rust-embed = "8.3"
|
rust-embed = "8.3"
|
||||||
mime_guess = "2.0"
|
mime_guess = "2.0"
|
||||||
tower-http = { version = "0.4", features = ["trace", "auth"] }
|
tower-http = { version = "0.4", features = ["trace", "auth"] }
|
||||||
|
|
||||||
# Error handling
|
# Error handling
|
||||||
thiserror = "1.0"
|
thiserror = "1.0"
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
|
|
||||||
# Authentication
|
# Authentication
|
||||||
pbkdf2 = { version = "0.12", features = ["simple"] }
|
pbkdf2 = { version = "0.12", features = ["simple"] }
|
||||||
rand_core = { version = "0.6", features = ["std"] }
|
rand_core = { version = "0.6", features = ["std"] }
|
||||||
jsonwebtoken = "9.2"
|
jsonwebtoken = "9.2"
|
||||||
rustls = "0.22"
|
rustls = "0.22"
|
||||||
rustls-native-certs = "0.7"
|
rustls-native-certs = "0.7"
|
||||||
rustls-pemfile = "2.1"
|
rustls-pemfile = "2.1"
|
||||||
pem = "3.0"
|
pem = "3.0"
|
||||||
x509-parser = "0.16"
|
x509-parser = "0.16"
|
||||||
rsa = "0.9"
|
rsa = "0.9"
|
||||||
elliptic-curve = { version = "0.13", features = ["pem"] }
|
elliptic-curve = { version = "0.13", features = ["pem"] }
|
||||||
p256 = "0.13"
|
p256 = "0.13"
|
||||||
rcgen = { version = "0.13.1", features = [ "x509-parser" ] }
|
rcgen = { version = "0.13.1", features = ["x509-parser"] }
|
||||||
openidconnect = { version = "3.5", features = ["accept-rfc3339-timestamps"] }
|
openidconnect = { version = "3.5", features = ["accept-rfc3339-timestamps"] }
|
||||||
oauth2 = "4.4"
|
oauth2 = "4.4"
|
||||||
|
|
||||||
# MQTT
|
# MQTT
|
||||||
rumqttc = { version = "0.24", features = ["url"] }
|
rumqttc = { version = "0.24", features = ["url"] }
|
||||||
hex = "0.4"
|
hex = "0.4"
|
||||||
|
|
||||||
# Codecs
|
# Codecs
|
||||||
rquickjs = { version = "0.6", features = [
|
rquickjs = { version = "0.6", features = [
|
||||||
"bindgen",
|
"bindgen",
|
||||||
"loader",
|
"loader",
|
||||||
"array-buffer",
|
"array-buffer",
|
||||||
"chrono",
|
"chrono",
|
||||||
] }
|
] }
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
lazy_static = "1.4"
|
lazy_static = "1.4"
|
||||||
uuid = { version = "1.8", features = ["v4", "serde"] }
|
uuid = { version = "1.8", features = ["v4", "serde"] }
|
||||||
chrono = "0.4"
|
chrono = "0.4"
|
||||||
async-trait = "0.1"
|
async-trait = "0.1"
|
||||||
aes = "0.8"
|
aes = "0.8"
|
||||||
rand = "0.8"
|
rand = "0.8"
|
||||||
base64 = "0.22"
|
base64 = "0.22"
|
||||||
async-recursion = "1.0"
|
async-recursion = "1.0"
|
||||||
regex = "1.10"
|
regex = "1.10"
|
||||||
petgraph = "0.6"
|
petgraph = "0.6"
|
||||||
prometheus-client = "0.22"
|
prometheus-client = "0.22"
|
||||||
pin-project = "1.1"
|
pin-project = "1.1"
|
||||||
|
|
||||||
# Development and testing
|
# Development and testing
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
httpmock = "0.7.0"
|
httpmock = "0.7.0"
|
||||||
bytes = "1.5"
|
bytes = "1.5"
|
||||||
dotenv = "0.15"
|
dotenv = "0.15"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
test-all-integrations = ["test-integration-amqp", "test-integration-kafka", "test-integration-mqtt"]
|
test-all-integrations = [
|
||||||
test-integration-amqp = []
|
"test-integration-amqp",
|
||||||
test-integration-kafka = []
|
"test-integration-kafka",
|
||||||
test-integration-mqtt = []
|
"test-integration-mqtt",
|
||||||
|
]
|
||||||
|
test-integration-amqp = []
|
||||||
|
test-integration-kafka = []
|
||||||
|
test-integration-mqtt = []
|
||||||
|
|
||||||
# Debian packaging.
|
# Debian packaging.
|
||||||
[package.metadata.deb]
|
[package.metadata.deb]
|
||||||
assets = [
|
assets = [
|
||||||
[
|
[
|
||||||
"target/release/chirpstack",
|
"target/release/chirpstack",
|
||||||
"usr/bin/",
|
"usr/bin/",
|
||||||
"755",
|
"755",
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"configuration/*.toml",
|
"configuration/*.toml",
|
||||||
"etc/chirpstack/",
|
"etc/chirpstack/",
|
||||||
"640",
|
"640",
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
conf-files = [
|
conf-files = [
|
||||||
"/etc/chirpstack/chirpstack.toml",
|
"/etc/chirpstack/chirpstack.toml",
|
||||||
"/etc/chirpstack/region_as923.toml",
|
"/etc/chirpstack/region_as923.toml",
|
||||||
"/etc/chirpstack/region_as923_2.toml",
|
"/etc/chirpstack/region_as923_2.toml",
|
||||||
"/etc/chirpstack/region_as923_3.toml",
|
"/etc/chirpstack/region_as923_3.toml",
|
||||||
"/etc/chirpstack/region_as923_4.toml",
|
"/etc/chirpstack/region_as923_4.toml",
|
||||||
"/etc/chirpstack/region_au915_0.toml",
|
"/etc/chirpstack/region_au915_0.toml",
|
||||||
"/etc/chirpstack/region_au915_1.toml",
|
"/etc/chirpstack/region_au915_1.toml",
|
||||||
"/etc/chirpstack/region_au915_2.toml",
|
"/etc/chirpstack/region_au915_2.toml",
|
||||||
"/etc/chirpstack/region_au915_3.toml",
|
"/etc/chirpstack/region_au915_3.toml",
|
||||||
"/etc/chirpstack/region_au915_4.toml",
|
"/etc/chirpstack/region_au915_4.toml",
|
||||||
"/etc/chirpstack/region_au915_5.toml",
|
"/etc/chirpstack/region_au915_5.toml",
|
||||||
"/etc/chirpstack/region_au915_6.toml",
|
"/etc/chirpstack/region_au915_6.toml",
|
||||||
"/etc/chirpstack/region_au915_7.toml",
|
"/etc/chirpstack/region_au915_7.toml",
|
||||||
"/etc/chirpstack/region_cn779.toml",
|
"/etc/chirpstack/region_cn779.toml",
|
||||||
"/etc/chirpstack/region_eu433.toml",
|
"/etc/chirpstack/region_eu433.toml",
|
||||||
"/etc/chirpstack/region_eu868.toml",
|
"/etc/chirpstack/region_eu868.toml",
|
||||||
"/etc/chirpstack/region_in865.toml",
|
"/etc/chirpstack/region_in865.toml",
|
||||||
"/etc/chirpstack/region_ism2400.toml",
|
"/etc/chirpstack/region_ism2400.toml",
|
||||||
"/etc/chirpstack/region_kr920.toml",
|
"/etc/chirpstack/region_kr920.toml",
|
||||||
"/etc/chirpstack/region_ru864.toml",
|
"/etc/chirpstack/region_ru864.toml",
|
||||||
"/etc/chirpstack/region_us915_0.toml",
|
"/etc/chirpstack/region_us915_0.toml",
|
||||||
"/etc/chirpstack/region_us915_1.toml",
|
"/etc/chirpstack/region_us915_1.toml",
|
||||||
"/etc/chirpstack/region_us915_2.toml",
|
"/etc/chirpstack/region_us915_2.toml",
|
||||||
"/etc/chirpstack/region_us915_3.toml",
|
"/etc/chirpstack/region_us915_3.toml",
|
||||||
"/etc/chirpstack/region_us915_4.toml",
|
"/etc/chirpstack/region_us915_4.toml",
|
||||||
"/etc/chirpstack/region_us915_5.toml",
|
"/etc/chirpstack/region_us915_5.toml",
|
||||||
"/etc/chirpstack/region_us915_6.toml",
|
"/etc/chirpstack/region_us915_6.toml",
|
||||||
"/etc/chirpstack/region_us915_7.toml",
|
"/etc/chirpstack/region_us915_7.toml",
|
||||||
]
|
]
|
||||||
suggests = "postgresql, mosquitto, redis"
|
suggests = "postgresql, mosquitto, redis"
|
||||||
maintainer-scripts = "debian/"
|
maintainer-scripts = "debian/"
|
||||||
systemd-units = { enable = true }
|
systemd-units = { enable = true }
|
||||||
|
|
||||||
[package.metadata.generate-rpm]
|
[package.metadata.generate-rpm]
|
||||||
auto-req = "no"
|
auto-req = "no"
|
||||||
|
|
||||||
pre_install_script = '''
|
pre_install_script = '''
|
||||||
id chirpstack &>/dev/null
|
id chirpstack &>/dev/null
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
useradd --system -U -M chirpstack -s /bin/false -d /etc/chirpstack
|
useradd --system -U -M chirpstack -s /bin/false -d /etc/chirpstack
|
||||||
fi
|
fi
|
||||||
'''
|
'''
|
||||||
|
|
||||||
post_install_script = '''
|
post_install_script = '''
|
||||||
chown -R chirpstack:chirpstack /etc/chirpstack
|
chown -R chirpstack:chirpstack /etc/chirpstack
|
||||||
chmod 750 /etc/chirpstack
|
chmod 750 /etc/chirpstack
|
||||||
chmod 640 /etc/chirpstack/*.toml
|
chmod 640 /etc/chirpstack/*.toml
|
||||||
'''
|
'''
|
||||||
|
|
||||||
assets = [
|
assets = [
|
||||||
{ source = "target/release/chirpstack", dest = "/usr/bin/chirpstack", mode = "755" },
|
{ source = "target/release/chirpstack", dest = "/usr/bin/chirpstack", mode = "755" },
|
||||||
{ source = "configuration/*", dest = "/etc/chirpstack"},
|
{ source = "configuration/*", dest = "/etc/chirpstack" },
|
||||||
{ source = "rpm/chirpstack.service", dest = "/lib/systemd/system/chirpstack.service"},
|
{ source = "rpm/chirpstack.service", dest = "/lib/systemd/system/chirpstack.service" },
|
||||||
]
|
]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[toolchain]
|
[toolchain]
|
||||||
channel = "1.78.0"
|
channel = "1.79.0"
|
||||||
components = ["rustfmt", "clippy"]
|
components = ["rustfmt", "clippy"]
|
||||||
profile = "default"
|
profile = "default"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-23.11.tar.gz") {} }:
|
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-24.05.tar.gz") {} }:
|
||||||
|
|
||||||
pkgs.mkShell {
|
pkgs.mkShell {
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user