Commit Graph
53 Commits
Author SHA1 Message Date
Nils Andreas Svee af07915441 build(uci): enable vendored UCI builds and Unix development support
Switch rust-uci dependency to the Lochnair fork with vendored UCI
feature for self-contained builds without system libuci. Add
uci-vendored feature flag (enabled by default) that pulls in the
vendored C library. UCI support on non-Linux Unix is intended for
development and testing.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee 39add2b2e0 feat(uci): add generalized UCI configuration source
Introduce the UciSource abstraction as a config-rs Source that reads
UCI packages and maps them into the configuration tree. Supports
package selection, required/optional behavior, and custom config/save
directories. Move rust-uci dependency to cfg(unix) to enable UCI
support on all Unix systems for development and testing, while
Linux/OpenWrt remains the production-supported platform.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee c0a50c68f9 feat(config): add config-rs settings support
Introduce config-rs and Serde support with a nested Settings model.
Add config and serde dependencies with toml feature for file-based
configuration loading. The Settings struct provides typed configuration
with sensible defaults for network, output, observability, and advanced
settings sections. Environment variable override via SQMA__ prefix is
supported. The legacy Config remains in use; migration follows later.
2026-08-07 16:04:58 +07:00
renovate[bot] bc86a2cd53 fix(deps): update rust crate icmp-socket2 to 0.6.0 2026-07-29 10:04:32 +00:00
Nils Andreas Svee 288d1afdb9 chore(deps): switch netlink dependencies from git to crates.io 2026-07-24 00:05:41 +07:00
renovate[bot] f6fa7b8814 fix(deps): update netlink-socket2 digest to 928e9ca 2026-07-24 00:05:40 +07:00
renovate[bot] cd160e67fe fix(deps): update netlink-bindings digest to 928e9ca 2026-07-24 00:05:40 +07:00
Nils Andreas Svee b07dc99bf5 fix(deps): update rust crate icmp-socket2 to 0.5.1 2026-07-17 13:07:30 +07:00
Nils Andreas Svee 9811592f13 feat(platform): introduce abstractions for cross-platform interface statistics and traffic control
Decouple the rate controller from Linux-specific Netlink calls to support other operating systems. This adds a macOS backend for interface statistics and an "observe-only" mode for platforms where traffic shaping is not yet implemented.
2026-07-17 11:35:43 +07:00
Nils Andreas Svee c5d673fcb8 build(uci): restrict UCI dependency and feature to Linux targets
Ensure the UCI integration is only compiled on Linux, as the underlying native dependency is platform-specific. Added a build script to warn users when the feature is enabled on unsupported platforms.
2026-07-17 01:43:10 +07:00
renovate[bot] ae3cd96313 fix(deps): update netlink-socket2 digest to 0b609e9 2026-07-03 00:47:45 +07:00
renovate[bot] 3d1c14d312 fix(deps): update netlink-bindings digest to 0b609e9 2026-07-03 00:46:39 +07:00
renovate[bot] 7955046426 fix(deps): update rust-uci digest to 3e7b615 2026-07-03 00:46:39 +07:00
Nils Andreas Svee 58d536bb22 refactor(pinger): replace hashlru with standard HashMap and manual TTL cleanup
Remove the hashlru dependency to reduce bloat, replacing it with a Mutex-wrapped HashMap and manual entry expiration logic.
2026-04-23 00:33:07 +07:00
Nils Andreas Svee 6f16f3a93c build(deps): disable default features for hashlru to reduce dependency bloat
Remove unused dependencies including ahash, hashbrown, and zerocopy by disabling default features for hashlru.
2026-04-23 00:19:00 +07:00
Nils Andreas Svee 7250050f63 feat(deps): Add hashlru for in-flight probe caching 2026-04-23 00:16:19 +07:00
Nils Andreas Svee 3322e82b6c refactor: replace std::sync::mpsc with flume for improved channel performance
Migrate internal message passing to flume to leverage better performance and additional features like eventual fairness and selection.
2026-04-22 22:39:06 +07:00
Nils Andreas Svee 33169182be chore(deps): update rust-uci repository source
Switch the rust-uci dependency to the namib-project fork while maintaining the same revision to ensure availability and consistency with project requirements.
2026-04-22 15:11:16 +07:00
Nils Andreas Svee 2aea1bea86 chore(deps): switch rust-uci to git dependency
Update rust-uci to use a specific git revision from the upstream repository to incorporate latest changes not yet available in the published version.
2026-04-22 15:06:45 +07:00
Nils Andreas Svee 7c40990e93 chore(deps): switch netlink dependencies to upstream git and remove vendor patch
Replace the local vendored patch for netlink-socket2 with a direct reference to the upstream git repository to maintain the fix for musl targets.

This should be changed back to using a release once the fix has a published release
2026-04-18 15:41:02 +07:00
Nils Andreas Svee 7b0eb942ea fix(deps): patch netlink-socket2 to support musl targets
Vendor netlink-socket2 to resolve compilation failures caused by direct struct-literal initialization of libc types on musl.
2026-04-14 15:00:49 +07:00
Nils Andreas Svee 5daccecc1d fix(deps): update rust crate netlink-bindings to 0.3
Adjust netlink and traffic control logic to accommodate breaking API changes, including shifts from method calls to direct field access.
2026-04-14 13:09:50 +07:00
renovate[bot] 2c336799b8 fix(deps): update rust crate netlink-socket2 to 0.3 2026-04-14 12:07:32 +07:00
Nils Andreas Svee 8739ed4419 fix(metrics): use AtomicU32 for drop counter to support MIPS targets
Also bumps version to 0.4.1.
2026-04-14 02:14:55 +07:00
Nils Andreas Svee 99e80c381d build: bump package version to 0.4.0 2026-04-14 02:09:20 +07:00
Nils Andreas Svee dd8735f46e chore(deps): update icmp-socket2 to 0.4.2
Update the icmp-socket2 dependency version in Cargo.toml and Cargo.lock to incorporate the latest upstream changes.
2026-04-13 16:23:20 +07:00
Nils Andreas Svee 44f551d38c feat(observability): Add InfluxDB Line Protocol metrics module and config 2026-04-13 15:01:45 +07:00
Nils Andreas Svee 8461d29788 build: bump version to 0.3.0
Update package version in Cargo.toml and Cargo.lock to reflect a new release.
2026-04-01 12:55:52 +07:00
Nils Andreas Svee 050291990a build: migrate from icmp-socket to icmp-socket2 2026-04-01 12:52:19 +07:00
Nils Andreas Svee eb88107bd0 chore(deps): Remove 'time' crate 2026-02-22 12:13:13 +07:00
Nils Andreas Svee 830e21363a refactor: replace rand crate with fastrand
Replaces the `rand` crate with `fastrand` for improved performance in rate control and reflector selection.
2026-02-22 00:33:57 +07:00
Nils Andreas Svee 986b649a37 feat(netlink): Refactors to use netlink-socket2
Migrates netlink implementation to use netlink-socket2 and netlink-bindings crates, replacing neli crate for improved socket handling. Removes unused dependencies.
2026-02-21 23:10:48 +07:00
Nils Andreas Svee 6a49ad9112 Refactor(netlink): Replaces zerocopy with bytemuck
Migrates from `zerocopy` to `bytemuck` for improved data serialization and deserialization in netlink communication. This enhances maintainability.
2026-02-21 19:09:10 +07:00
Nils Andreas Svee 5838b0b9ee refactor: replace bincode with zerocopy
Replaces bincode with zerocopy for deserialization of network data, improving performance and reducing dependencies.
2026-02-21 18:44:43 +07:00
Nils Andreas Svee f5d3776159 refactor: migrate ICMP handling to icmp-socket crate 2026-02-21 17:13:54 +07:00
Nils Andreas Svee 9fb0e0cfe7 chore: update deps 2026-02-20 22:56:04 +07:00
Nils Andreas Svee 4670345caa build: update rustix and dependencies
Update rustix to version 1.1 and refresh the Cargo lockfile to ensure compatibility with the latest transitive dependency versions.
2026-02-20 22:49:11 +07:00
Nils Andreas Svee 49b076d10c chore: upgrade to new major version of deps 2025-05-09 00:08:25 +07:00
Nils Andreas Svee e70451a4f4 chore: update to rust edition 2024 and bump version 2025-05-08 19:47:08 +07:00
dependabot[bot] f946bd6cf6 build(deps): bump rand from 0.8.5 to 0.9.1
Bumps [rand](https://github.com/rust-random/rand) from 0.8.5 to 0.9.1.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...rand_core-0.9.1)

---
updated-dependencies:
- dependency-name: rand
  dependency-version: 0.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 19:18:43 +07:00
dependabot[bot] 548965c600 build(deps): bump etherparse from 0.13.0 to 0.18.0
Bumps [etherparse](https://github.com/JulianSchmid/etherparse) from 0.13.0 to 0.18.0.
- [Release notes](https://github.com/JulianSchmid/etherparse/releases)
- [Changelog](https://github.com/JulianSchmid/etherparse/blob/master/changelog.md)
- [Commits](https://github.com/JulianSchmid/etherparse/compare/v0.13.0...v0.18.0)

---
updated-dependencies:
- dependency-name: etherparse
  dependency-version: 0.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 19:17:52 +07:00
dependabot[bot] 48f5e2009a build(deps): bump byteorder from 1.4.3 to 1.5.0
Bumps [byteorder](https://github.com/BurntSushi/byteorder) from 1.4.3 to 1.5.0.
- [Changelog](https://github.com/BurntSushi/byteorder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/BurntSushi/byteorder/compare/1.4.3...1.5.0)

---
updated-dependencies:
- dependency-name: byteorder
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 19:16:44 +07:00
Nils Andreas Svee 4a1368cd7a revert socket2 to 0.4.x 2023-03-12 01:59:44 +01:00
Nils Andreas Svee f7c2464a80 Update dependencies 2023-03-07 14:59:44 +01:00
Nils Andreas Svee c82f777290 Update dependencies 2022-10-15 13:44:53 +02:00
Nils Andreas Svee 6119408e1f Attempt changing to socket2 2022-10-13 18:03:56 +02:00
Nils Andreas Svee 49c0bdb998 Update dependencies and profiles 2022-10-13 17:20:00 +02:00
Nils Andreas Svee e3b7b7e9ba Implement missing features, some cleanup 2022-09-28 00:25:35 +02:00
Nils Andreas Svee 51442e0b26 rename 2022-09-17 18:05:48 +02:00
Nils Andreas Svee b147006a69 partly working implementation 2022-09-17 14:39:27 +02:00