Laurence
9738565a3a
fix: address code review issues for BART subnet lookup
...
- Fix prefix canonicalization: use Masked() to handle host bits correctly
(e.g., 10.0.0.5/24 and 10.0.0.0/24 are now treated as equal)
- Fix empty trie cleanup: use BART's Size() method to check if trie is empty
instead of relying on rules slice length, preventing stale entries
- Fix go.mod: move BART from indirect to direct dependencies
These fixes ensure proper bookkeeping and prevent memory leaks from
empty tries hanging around after rule removal.
2026-02-22 14:22:23 +00:00
Laurence
c42a606bbd
perf: optimize subnet rule matching with BART
...
Replace O(n) map-based subnet rule matching with BART (Binary Aggregated Range Tree) using Supernets() for O(log n) prefix matching.
Performance improvements:
- 1.3x faster for large rule sets (1000+ rules)
- 39x faster for no-match cases (critical for firewall/security)
- 1.9x faster for adding rules
- Better scaling characteristics
Trade-offs:
- Small rule sets (10-100): 1.2-1.4x slower for matches (20-30ns overhead)
- Large rule sets (1000+): 1.3x faster
- No-match: 39x faster (original checks all rules, BART uses O(log n) tree lookup)
The no-match performance is particularly important for security/firewall scenarios where many packets are rejected. BART can determine 'no match' in ~7 tree operations vs checking all 100+ rules.
Dependencies:
- Added: github.com/gaissmai/bart v0.26.0
Files:
- netstack2/subnet_lookup.go: New BART-based implementation
- netstack2/proxy.go: Removed old map-based implementation, updated to use BART
2026-02-22 14:22:20 +00:00
miloschwartz
b7af49d759
fix flag
2026-02-17 22:10:01 -08:00
Owen
00a5fa1f37
Add daemon into newt
2026-02-17 22:10:01 -08:00
miloschwartz
d256d6c746
remove defaults
2026-02-17 22:10:01 -08:00
miloschwartz
2cc957d55f
add auth daemon
2026-02-17 22:10:01 -08:00
Owen
d98eaa88b3
Add round trip tracking for any message
2026-02-17 22:10:01 -08:00
Owen
5b884042cd
Add basic newt command relay to auth daemon
2026-02-17 22:10:01 -08:00
Owen
2265b61381
Remove legacy ssh
2026-02-17 22:10:01 -08:00
Owen
50fbfdc262
Update example domain
2026-02-16 17:54:19 -08:00
Owen
2055b773fd
Merge branch 'main' of github.com:fosrl/newt into dev
1.9.0
v1.9.0
2026-01-21 15:59:03 -08:00
Owen
1c9c98e2f6
Show download script to update
2026-01-19 21:25:28 -08:00
dependabot[bot]
9c57677493
chore(nix): fix hash for updated go dependencies
2026-01-19 17:33:19 -08:00
dependabot[bot]
ff825a51dd
Bump the prod-minor-updates group across 1 directory with 14 updates
...
Bumps the prod-minor-updates group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib ) | `0.63.0` | `0.64.0` |
| [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib ) | `0.63.0` | `0.64.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go ) | `1.38.0` | `1.39.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go ) | `1.38.0` | `1.39.0` |
| [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go ) | `0.60.0` | `0.61.0` |
| [golang.org/x/crypto](https://github.com/golang/crypto ) | `0.45.0` | `0.46.0` |
| [golang.org/x/net](https://github.com/golang/net ) | `0.47.0` | `0.48.0` |
| software.sslmate.com/src/go-pkcs12 | `0.6.0` | `0.7.0` |
Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.63.0 to 0.64.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.63.0...zpages/v0.64.0 )
Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.63.0 to 0.64.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.63.0...zpages/v0.64.0 )
Updates `go.opentelemetry.io/otel` from 1.38.0 to 1.39.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.38.0 to 1.39.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.38.0 to 1.39.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0 )
Updates `go.opentelemetry.io/otel/exporters/prometheus` from 0.60.0 to 0.61.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/exporters/prometheus/v0.60.0...exporters/prometheus/v0.61.0 )
Updates `go.opentelemetry.io/otel/metric` from 1.38.0 to 1.39.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0 )
Updates `go.opentelemetry.io/otel/sdk` from 1.38.0 to 1.39.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0 )
Updates `go.opentelemetry.io/otel/sdk/metric` from 1.38.0 to 1.39.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0 )
Updates `golang.org/x/crypto` from 0.45.0 to 0.46.0
- [Commits](https://github.com/golang/crypto/compare/v0.45.0...v0.46.0 )
Updates `golang.org/x/net` from 0.47.0 to 0.48.0
- [Commits](https://github.com/golang/net/compare/v0.47.0...v0.48.0 )
Updates `golang.org/x/sys` from 0.38.0 to 0.39.0
- [Commits](https://github.com/golang/sys/compare/v0.38.0...v0.39.0 )
Updates `google.golang.org/grpc` from 1.76.0 to 1.77.0
- [Release notes](https://github.com/grpc/grpc-go/releases )
- [Commits](https://github.com/grpc/grpc-go/compare/v1.76.0...v1.77.0 )
Updates `software.sslmate.com/src/go-pkcs12` from 0.6.0 to 0.7.0
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
dependency-version: 0.64.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/contrib/instrumentation/runtime
dependency-version: 0.64.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/otel
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/otel/exporters/prometheus
dependency-version: 0.61.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/otel/metric
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: go.opentelemetry.io/otel/sdk/metric
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: golang.org/x/crypto
dependency-version: 0.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: golang.org/x/net
dependency-version: 0.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: golang.org/x/sys
dependency-version: 0.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: google.golang.org/grpc
dependency-version: 1.77.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: software.sslmate.com/src/go-pkcs12
dependency-version: 0.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:33:19 -08:00
dependabot[bot]
cdfc5733f0
Bump docker/setup-buildx-action from 3.11.1 to 3.12.0
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 3.11.1 to 3.12.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](e468171a9d...8d2750c68a )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: 3.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:33:02 -08:00
dependabot[bot]
cadbb50bdf
Bump actions/attest-build-provenance from 3.0.0 to 3.1.0
...
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance ) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/actions/attest-build-provenance/releases )
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md )
- [Commits](977bb373ed...00014ed6ed )
---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
dependency-version: 3.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:32:56 -08:00
dependabot[bot]
4ac33c824b
Bump actions/cache from 4.3.0 to 5.0.1
...
Bumps [actions/cache](https://github.com/actions/cache ) from 4.3.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](0057852bfa...9255dc7a25 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: 5.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:32:46 -08:00
dependabot[bot]
d91228f636
chore(deps): bump actions/checkout from 5.0.0 to 6.0.1
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 5.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](08c6903cd8...8e8c483db8 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:32:25 -08:00
dependabot[bot]
6c3b85bb9a
chore(deps): bump docker/metadata-action from 5.9.0 to 5.10.0
...
Bumps [docker/metadata-action](https://github.com/docker/metadata-action ) from 5.9.0 to 5.10.0.
- [Release notes](https://github.com/docker/metadata-action/releases )
- [Commits](318604b99e...c299e40c65 )
---
updated-dependencies:
- dependency-name: docker/metadata-action
dependency-version: 5.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:32:18 -08:00
Owen
77d99f1722
Add stale bot
2026-01-19 17:11:48 -08:00
Owen
43e1341352
Disable metrics by default
2026-01-18 15:20:13 -08:00
Owen
daa1a90e05
Dont block waiting for a rebind signal
2026-01-18 11:36:42 -08:00
Owen
3739c237c7
Handle rebind in the polling function
2026-01-18 11:36:30 -08:00
Owen
ddde1758e5
Try to close the socket first
2026-01-17 17:35:10 -08:00
Owen
dca29781f3
Rebind in shared bind
2026-01-17 17:06:01 -08:00
Owen
91bfd69179
Filter out no bandwidth peers
2026-01-16 17:54:05 -08:00
Owen
060d876429
Allow updating the intervals
2026-01-14 17:09:27 -08:00
Owen
69952efe89
Fix bug where not all routes are added
2026-01-12 16:01:15 -08:00
Owen
66949ca047
Merge branch 'mobile' of github.com:fosrl/newt into mobile
2026-01-12 14:22:01 -08:00
Owen
8c12db6dff
Try to improve cpu usage
2026-01-12 14:21:05 -08:00
Owen
b84d465763
Add noop for android ios
2026-01-12 12:31:38 -08:00
miloschwartz
a62567997d
quiet and logs and fix ios errors
2026-01-01 17:29:02 -05:00
Owen
9bb4bbccb8
Fix incrementor not updating; restrict routes to darwin
2025-12-31 15:58:04 -05:00
Owen
c3fad797e5
Handle android and ios in routes
2025-12-31 15:43:16 -05:00
Owen
0168b4796e
Add mobile subs for permission
2025-12-30 10:31:35 -05:00
Owen
6c05d76c88
Merge branch 'main' into dev
1.8.1
v1.8.1
2025-12-24 15:18:11 -05:00
Owen
a701add824
Reuse http client for each target
...
Fixes #220
2025-12-24 10:58:46 -05:00
Owen
d754cea397
Dont run on v tags
v1.8.0
2025-12-23 17:54:31 -05:00
Owen
31d52ad3ff
Quiet up HandleIncomingPacket
2025-12-23 10:29:15 -05:00
Owen
e1ee4dc8f2
Fix latest tag
2025-12-22 21:32:47 -05:00
Varun Narravula
f9b6f36b4f
ci: update nix go vendor hash if needed for dependabot PRs
2025-12-22 19:43:48 -05:00
Varun Narravula
0e961761b8
chore: add direnv and nix result dirs to gitignore
2025-12-22 19:43:48 -05:00
Varun Narravula
baf1b9b972
ci: build nix package when go.mod is changed
2025-12-22 19:43:48 -05:00
Varun Narravula
f078136b5a
fix(nix): disable tests, set meta.mainProgram for package
2025-12-22 19:43:48 -05:00
Varun Narravula
ca341a8bb0
chore(nix): sync version number with latest version
2025-12-22 19:43:48 -05:00
Owen
80ae03997a
Merge branch 'dev'
1.8.0
2025-12-22 16:15:41 -05:00
Owen
5c94789d9a
Quiet up logs
2025-12-22 14:31:44 -05:00
Owen
6c65cc8e5e
Fix makefile cicd binaries
2025-12-21 21:34:56 -05:00
Owen
a21a8e90fa
Add back release and binaries
1.8.0-rc.0
2025-12-21 21:01:04 -05:00
Owen
3d5335f2cb
Add back release and binaries
2025-12-21 21:00:45 -05:00