Commit graph

70 commits

Author SHA1 Message Date
Joachim Bauch
124c37108b
Move SFU related code to separate packages.
With that move GRPC client code to "grpc" package to break dependencies.
Also introduce new "proxy" package with common proxy-related code.
2026-01-12 13:16:50 +01:00
Joachim Bauch
9bbc0588e3
Move code for commandline applications to "cmd" folder. 2026-01-12 13:16:49 +01:00
Joachim Bauch
ecc25c402f
Move async events code to "async/events" package. 2026-01-12 13:16:36 +01:00
Joachim Bauch
231f7c8af4
Move geo related code to "geoip" package.
With that, add dedicated types for "Country" and "Continent".
2026-01-12 13:16:33 +01:00
Joachim Bauch
6756520447
Move etcd client code to "etcd" package. 2026-01-12 13:16:30 +01:00
Joachim Bauch
179498f28b
Move signaling api types to api package. 2026-01-12 13:16:25 +01:00
Joachim Bauch
b7f8f83944
Move Talk capabilities to talk package. 2026-01-12 13:16:23 +01:00
Joachim Bauch
5f58e335c8
make: Include "version.txt" in tarball. 2025-12-03 09:31:32 +01:00
Joachim Bauch
855d2c8231
CI: Run benchmarks. 2025-11-24 12:36:01 +01:00
Joachim Bauch
cfd8cf6718
Use gvisor checklocks for static lock analysis.
Also fix locking issues found along the way.

See https://github.com/google/gvisor/tree/master/tools/checklocks for details.
2025-10-01 13:49:32 +02:00
Joachim Bauch
12c16bce61
make: Always test all packages. 2025-09-26 13:51:44 +02:00
Joachim Bauch
8ee19e3bcf
Use "testing/synctest" to simplify timing-dependent tests. 2025-09-09 11:33:32 +02:00
Joachim Bauch
ac69fa3a0c
CI: Add codecov configuration. 2025-07-31 08:55:45 +02:00
Joachim Bauch
b35d7e9c57
make: Remove (empty) easyjson files from optimization step. 2025-06-12 12:11:21 +02:00
Jean Kahrs
934422d05e Explicitly set TMPDIR to ensure that it is a path where go-installed utils (pe. easyjson-bootstrap) can be executed. Fixes #955 2025-04-01 15:43:59 +02:00
Joachim Bauch
58e484be9c
make: Optimize generated easyjson files. 2025-01-16 10:13:47 +01:00
Joachim Bauch
1de5f26ef8
make: Pin version of "google.golang.org/protobuf/cmd/protoc-gen-go". 2025-01-15 16:41:20 +01:00
Joachim Bauch
9aeb57d74e
Encode session ids using protobufs.
This will reduce their size and improve encoding / decoding performance.

Also fixes GO-2024-3106 (Stack exhaustion in Decoder.Decode in encoding/gob).
2024-10-28 14:47:46 +01:00
Joachim Bauch
761ba9c534
make: Improve dependency tracking. 2024-10-28 11:58:16 +01:00
Joachim Bauch
1230787eb7
make: Rename "distclean" target to "clean-generated".
This is to avoid potential problems with packaging systems that call
"make distclean" during their clean stage and with that remove the
generated files.
2024-09-03 14:58:00 +02:00
Joachim Bauch
052b3e28ed
CI: Always do a full build of generated files. 2024-08-05 09:13:02 +02:00
Joachim Bauch
05d50451c8
Omit version numbers from .proto generated files to help with diff. 2024-07-24 15:09:28 +02:00
Joachim Bauch
fd2ace0482
Keep generated files in the repository.
This reduces the OS dependencies to build a released version.
2024-07-24 15:09:27 +02:00
Joachim Bauch
26e3a39f12
make: No need to run "go mod tidy" before vendoring. 2024-06-03 09:51:22 +02:00
Joachim Bauch
224daa5efd
make: Don't update CLI tools before installing.
This makes sure the go.mod / go.sum files are not updated when generating
the "vendor" folder (which will generate common files and thus might update
the CLI tools). Mismatching "vendor" and "go.*" files will break building.
2024-06-03 09:49:46 +02:00
Joachim Bauch
ebb215c592
make: Don't run tests verbose by default. 2024-04-25 15:22:24 +02:00
Joachim Bauch
42005d97c4
make: Don't update dependencies but use pinned versions. 2024-03-06 08:27:46 +01:00
Joachim Bauch
f071a64797
make: Mark generated files as ".SECONDARY". 2024-02-07 13:08:42 +01:00
Joachim Bauch
6488ba1cf5
make: Fix "BINDIR" getting always created. 2024-02-07 13:08:42 +01:00
Joachim Bauch
b710d1704e
make: Mark "common" as ".PHONY". 2024-02-07 13:08:41 +01:00
Joachim Bauch
4a762a3264
make: Enable ".DELETE_ON_ERROR". 2024-02-07 13:08:41 +01:00
Joachim Bauch
55aee6e5dc
make: Keep generated easyjson files in variable. 2024-02-07 13:08:40 +01:00
Joachim Bauch
2b62c9e3c1
make: Automatically detect names of generated proto files. 2024-02-07 13:08:40 +01:00
Joachim Bauch
1a0e51499f
make: Split GRPC / regular PB file generation so it can be parallelized. 2024-02-07 13:08:39 +01:00
Joachim Bauch
2430421006
make: Update easyjson / prococ generators if dependencies changed. 2024-02-07 13:08:39 +01:00
Joachim Bauch
8db4068989
make: Quote regular expression of tests to run. 2024-01-30 17:03:44 +01:00
Joachim Bauch
84151b295a
Simplify vendoring.
Instead of manually copying files to vendor folder, try to get "go" to
detect dependencies instead.
2023-06-07 17:26:32 +02:00
Joachim Bauch
30a2fb134e
tarball: Copy more "google.golang.org/protobuf" modules to vendor.
This is required for the "protoc-gen-go" to be able to compile.
Auto-detection only works for modules that are imported by the main
module.
2023-03-13 10:08:25 +01:00
Joachim Bauch
c2182f0440
make: Ensure folder for protoc-gen-go-grpc command exists for tarball. 2023-03-06 10:24:13 +01:00
Joachim Bauch
43ad9b794b
Update protoc-gen-go-grpc to v1.3.0 2023-03-06 10:18:33 +01:00
Joachim Bauch
5843555f6f
vendor: Automatically vendor protobuf modules. 2022-08-05 10:20:56 +02:00
Joachim Bauch
3ae23f0336
make: Include vendored dependencies in tarball. 2022-07-27 17:28:18 +02:00
Joachim Bauch
deaa17acc5
Implement per-backend session limit for clusters. 2022-07-13 11:52:20 +02:00
Joachim Bauch
20cc51c2fe
grpc: Automatically detect if a target is the current server itself.
This allows configuring the same list of targets for all instances without
having to setup the "own" address differently for each server.
2022-06-30 11:35:35 +02:00
Joachim Bauch
25dabf910d
Allow configuring GRPC targets through etcd. 2022-06-30 11:35:32 +02:00
Joachim Bauch
a0d3af14e0
Add initial clustering support. 2022-06-30 11:35:28 +02:00
Joachim Bauch
0115c97946
Refactor asynchronous events to central location. 2022-06-24 13:37:35 +02:00
Joachim Bauch
a06bc333d2
make: remove leftover easyjson bootstrap files in "clean" target 2022-06-24 13:01:03 +02:00
Joachim Bauch
da1efac59d
make: No need to run easyjson against room.go.
Doesn't define any JSON structs, so easyjson is no longer needed.
2022-06-14 16:50:34 +02:00
Joachim Bauch
b83bf7cb5d
Don't run "go mod tidy" while building. 2022-06-02 15:52:29 +02:00