Commit Graph

165 Commits

Author SHA1 Message Date
kixelated 88542e266c
Major moq-transport API simplification (#68)
Exponentially easier to use moq-transport as there's no message handling required. This is a BREAKING CHANGE.
2023-09-15 12:06:28 -07:00
dependabot[bot] 35c2127683
Bump webpki from 0.22.0 to 0.22.1 (#67)
Bumps [webpki](https://github.com/briansmith/webpki) from 0.22.0 to
0.22.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/briansmith/webpki/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webpki&package-manager=cargo&previous-version=0.22.0&new-version=0.22.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/kixelated/moq-rs/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-07 16:20:56 -07:00
Mike English 48de6a3f5c
Fly.io (#49)
Adds support for deploying the `moq-quinn` relay server to fly.io
2023-09-07 16:02:07 -04:00
Zafer Gürel 73f450aa91
moq-pub: Avoid namespace conflict (#66)
namespace as a command line argument
or assign a unique (uuid4) value.

---------

Co-authored-by: Zafer Gurel <zafer@perculus.com>
2023-09-07 15:59:49 -04:00
Mike English 90818ac848
moq-pub: JSON catalog support, bugfixes (#60)
Fixes some bugs around subscription handling and 
adds support for the new JSON catalog format
2023-09-05 15:08:35 -04:00
Mike English 2b1a9a4ce5
Add moq-pub (#54)
Initial version of a CLI publisher / contribution tool
2023-08-30 09:32:42 -04:00
dependabot[bot] 838bffdd51
Bump rustls-webpki from 0.100.1 to 0.100.2 (#59)
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.100.1 to
0.100.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/webpki/releases">rustls-webpki's
releases</a>.</em></p>
<blockquote>
<h2>v/0.100.2</h2>
<h2>Release notes</h2>
<ul>
<li>certificate path building and verification is now capped at 100
signature validation operations to avoid the risk of CPU usage
denial-of-service attack when validating crafted certificate chains
producing quadratic runtime. This risk affected both clients, as well as
servers that verified client certificates.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>v0.100.2 prep by <a
href="https://github.com/cpu"><code>@​cpu</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/154">rustls/webpki#154</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustls/webpki/compare/v/0.100.1...v/0.100.2">https://github.com/rustls/webpki/compare/v/0.100.1...v/0.100.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c8b821450b"><code>c8b8214</code></a>
Bump MSRV to 1.60</li>
<li><a
href="855752292e"><code>8557522</code></a>
Avoid testing MSRV of dev-dependencies</li>
<li><a
href="73a7f0c7d7"><code>73a7f0c</code></a>
Cargo: version 0.100.1 -&gt; 0.100.2</li>
<li><a
href="4ea052366f"><code>4ea0523</code></a>
verify_cert: enforce maximum number of signatures.</li>
<li>See full diff in <a
href="https://github.com/rustls/webpki/compare/v/0.100.1...v/0.100.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustls-webpki&package-manager=cargo&previous-version=0.100.1&new-version=0.100.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/kixelated/moq-rs/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 15:30:40 -07:00
kixelated 8e3ebfcc7b
Remove the incompatible role check. (#58) 2023-08-29 15:30:21 -07:00
Mike English fdc05ffb99
moq-transport: Make Messages and Objects Clone (#57) 2023-08-29 00:59:30 -04:00
Mike English 5423d7c93a
Add more detailed Debug for MapSource (#56)
and everything it contains.

Stop short of printing all of the bytes in a State's VecDeque, but
expose most everything else for easier troubleshooting.
2023-08-28 15:14:15 -04:00
kixelated c53b3ddbe0
Update README.md 2023-08-25 16:36:06 -07:00
kixelated 5c3f794053
A few minor changes to the API. (#52)
The only salvagable remains from a multi-day refactoring effort. The
main benefit is that Setup messages are no longer part of the Message
enum, so match will be a lot easier.
2023-08-23 15:28:27 -07:00
kixelated c5d8873e4e
Webtransport generic (#51)
Switched to the webtransport-generic crate so quinn or quiche (with
adapter) can be used. This also involved switching out the
decoder/encoder since it meant a wrapper was required.
2023-08-15 10:20:03 -07:00
kixelated 3a65873055
Fix the buffering used for parsing. (#50)
fill_buf didn't work like I expected. This code is much better anyway.
2023-08-02 11:41:28 -07:00
kixelated 0e239935a6
Actually drain segments. (#48) 2023-07-23 10:28:20 -07:00
kixelated 891d6b167b
Remove the file source, since it doesn't loop. (#47)
ffmpeg -> moq-warp coming soon
2023-07-21 21:03:09 -07:00
kixelated e99ecee40a
Webtransport quinn fix (#46) 2023-07-20 17:42:35 -07:00
kixelated 52d3fc81be
Switch to webtransport-quinn (#44) 2023-07-19 18:04:45 -07:00
Luke Curley a2dd281126 Add vscode recommendations. 2023-07-10 10:08:00 -07:00
Luke Curley cf2a80b323 Small fixes. 2023-07-08 09:14:15 -07:00
kixelated 7c3eae0a7a
Make moq-transport generic. (#41)
The API is now synchronous and any quinn stuff has been moved to another
package. The quinn stuff will be slowly moved into moq-transport with
generic traits.
2023-07-08 09:13:29 -07:00
Mike English 3c43eed8bd
Dual license (#40)
License under either MIT or Apache 2.0 at licensees' choice.

Offering the option of MIT allows for GPL compatibility, but we can also
allow licensees to choose Apache 2.0 if they prefer.

This is common practice for many Rust projects.
2023-07-05 14:55:40 -07:00
kixelated b77a64c6f3
Change license to MIT. (#39) 2023-06-26 23:30:13 -07:00
kixelated 56adbf89f5
Relay support (#38)
Untested for contribution while I work on JS stuff.
2023-06-26 11:51:06 -07:00
kixelated 3daa2f4812
Cargo layout (#36)
Combine moq-transport and moq-media into one crate again. 

I might regret this because moq is taken on crates.io.
2023-06-16 20:36:07 -07:00
kixelated 4c04fbf2b8
Varint as an explicit type (#35) 2023-06-16 19:52:52 -07:00
kixelated d7872ef77d
Implement (forked) moq-transport-00 (#34)
Not backwards compatible.

JS side: https://github.com/kixelated/moq-js/pull/14
2023-06-16 11:38:19 -07:00
Luke Curley 9c17146746 Minor changes after trying to improve media subscriptions.
Got carried away with traits but it's not worth.
2023-06-08 10:47:15 -07:00
kixelated f0dafdf784
Enable BBR. (#22) 2023-06-08 10:08:18 -07:00
kixelated c88f0b045a
Migrate to quinn and async Rust (#21)
I miss quiche, but it was a pain to do anything asynchronous. MoQ is a
pub/sub protocol so it's very important to support subscribers
joining/leaving/stalling. The API is also just significantly better
since quinn doesn't restrict itself to C bindings, which I'm sure will
come back to haunt me when we want OBS support.
2023-06-08 00:01:34 -07:00
Luke Curley 7cfa5faca2 Correct default media path. 2023-05-30 13:27:16 -07:00
Luke Curley a501f91dae Panic if we can't open the media file. 2023-05-26 14:59:12 -07:00
Luke Curley c09306fd8c Rename the quiche fork. 2023-05-26 14:59:00 -07:00
kixelated 1febcb2e4a
Serve the certificate fingerprint over HTTP (#20)
It's a bloated solution, but it's required for local development until
Chrome supports self-signed WebTransport CAs.
2023-05-24 17:20:44 -07:00
Luke Curley ea918a6327 Oops duplicated web requirements. 2023-05-24 14:29:34 -07:00
Luke Curley 38ea8983d4 Split the web player into it's own repo.
https://github.com/kixelated/moq-js
2023-05-24 13:29:18 -07:00
kixelated fc958e11ae
Split audio into 1s streams (#19) 2023-05-24 12:55:36 -07:00
Luke Curley 05fccc2ae8 Fix decoding. 2023-05-23 15:15:53 -07:00
kixelated f4c8c6cf89
Tabs not spaces u nerds. (#18) 2023-05-23 12:04:27 -07:00
kixelated dfe5cc1771
Merge pull request #17 from kixelated/more-lint
More linting.
2023-05-22 22:11:45 -07:00
Luke Curley d3d1c17520 Use the simple CLI command. 2023-05-22 22:08:34 -07:00
Luke Curley 7b13dfe989 Use a different Github action. 2023-05-22 22:05:07 -07:00
Luke Curley e3ca13dd50 default working-directory 2023-05-22 21:58:05 -07:00
Luke Curley bec525e042 Add working directory. 2023-05-22 21:56:16 -07:00
Luke Curley 7843f8b0e4 Using spaces is WAY better for your career.
This is because in JavaScript, there is a HEAVY perception bias against tab users.

Most ES6 developers look down on anyone who uses tabs.
This could easily mean the difference between getting a job offer and being rejected.
It could mean tens of thousands of dollars of salary potential.

https://medium.com/mintbean-io/tabs-or-spaces-for-practical-javascript-developers-the-answer-is-clear-f66c0458aa1e
2023-05-22 21:49:59 -07:00
Luke Curley cc8792da09 More linting. 2023-05-22 21:43:48 -07:00
kixelated f05bd5a0ac
Merge pull request #16 from kixelated/lint
Lint typescript code
2023-05-22 20:31:09 -07:00
Luke Curley 062cda0b12 Rename some of the events. 2023-05-22 20:23:06 -07:00
Luke Curley 2b943aee8a Generate a cert to fix the issue. 2023-05-22 20:19:07 -07:00
Luke Curley 77be6fa12d Add a GH workflow. 2023-05-22 20:12:14 -07:00