github.com/qnkhuat/tstream
v1.3.3
#3042 most downloaded on Go modules
qnkhuat/tstream
What this package is like to depend on
Last release 4 years ago
no release in 18 months
Ships unpredictably
gaps range from 9 days to 10 months
Nearly every release is documented
notes for 8 of 8 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
29 releases · first in 2021
0 releases in the last 12 months
see the full history below
Release timeline
29 releases · Jul 2021 to Jul 2022Releases
latest 29-
v1.3.301 Jul 2022Release notes
Open source →Changelog
0c472b3 Merge pull request #54 from qnkhuat/move-to-xyz
337698b add an overlay to terminal in room to prevent input mode when touch on terminal
cf9238a moving from tstream.club to tstream.xyz -
v1.3.3-0.20210831111027-337698b5ed6531 Aug 2021 pre-releaseNothing published for this version
-
v1.3.230 Aug 2021 -
v1.3.108 Aug 2021Release notes
Open source →Changelog
This is a patch for the last version to fix a bug relating to terminal resizing.
In the last version because we sent data by block, but those data don't contain winsize messages => there will be a mismatch in timing.
In this version we include those winsize messages and also saving a cached winsize message on the server.
-
v1.3.1-0.20210808131745-7cd3e192e11b08 Aug 2021 pre-releaseNothing published for this version
-
v1.3.008 Aug 2021Release notes
Open source →Changelog
TL;DR:
- we stream data in block( contains many write requests in one block )
- Now users watching the stream will be delayed with the actual stream
- Much smoother and less lagging for both streamer and viewer
Technical note
In the previous version, any single change on the streamer's terminal is sent to the viewer. There are some problems with this approach:
- Many changes are very small ( I.e: newline ) => inefficient use of request
- In a short period of time we have many changes => too many requests
With this version, we send messages by block. Each block is all messages generated in a period. This block is also being gzipped before being sent. This way we have some advantages: - fewer requests since we send a block of data every x (3) seconds.
- By gzipped we reduced the message's size by around 7 folds. also, gzip is very fast so it's not a problem.
But this prevents users from watching the stream in super near real-time.
But I think 3 seconds lag is fine, it's how youtube and twitch works anw.
2f4c2bf client now read from blcok of data and schedule message according to offset
794dddb fix bug timing in message offset time
8dfa944 home page auto refresh every 15 seconds
b03f53d increase streampreview load time
38477bb smaller chat text on mobile
e780eb5 terminal are now exchanging block of message -
v1.2.1-0.20210808024018-6c94231fc67308 Aug 2021 pre-releaseNothing published for this version
-
v1.2.1-0.20210731052515-6aa57865b04d31 Jul 2021 pre-releaseNothing published for this version
-
v1.2.1-0.20210725123759-607132d1dfb325 Jul 2021 pre-releaseNothing published for this version
-
v1.2.025 Jul 2021Release notes
Open source →Important
All tstream client has to upgrade to v1.2.0 to be able to stream
Server
- Add an SFU voice server. Currently only allow one producer for one room ( still has some bug with syncPeers )
- Changed all the messages to using JSON (used text on the previous version) => this affects all components
TStream client
- Add voice command
/unmuteand/mute - Allow 3 chars roomname
Viewer UI
- Add simple search for live stream in home page
- Add volume control in room
- Responsive for mobile
Doc
- Add discord server in README
Changelog
8c95aa6 Add CGO build
de5198a Add noti when failed to start voice service instead of turn off chat
2d05f25 Add peer connection to chat
62e2691 Add toggle voicce server
0c408d6 add chat response to client ping
3824649 add client activity check
637fe91 add search for UI and improve responsiveness in room
18e2641 added mute button and testsed all feature. seems to work well
0397674 all messages going through websocket now are in JSON format. our life are much easier now
ef0c013 fix bug failed to adjust volume on viewer side
489430c fix bug failed to start chat rightat first session
5b121a2 got an ugly version of sfu that's runnign though
c5fb68e hot fix sfu sync peers and add document for tstream chat
8d4f125 stream audio using ffmpeg + rtp
abcca67 useable voice streaming. client can change volume level and reconnection with audio whever streamer turn audio on. Need a bit fine tune to make it totatlly smooth
f72a065 we have our own mediadevices build for darwin arm64 now -
v1.1.014 Jul 2021Release notes
Open source →TUI chat
- Start with command
tstream -chat. It'll auto-detect streaming session to open chat
CHAT
- UI refactor a bit. but still needs a lot more work
- UI add
/namecommand so viewers can change their name - server => refactor message packaging
Improves and secures streamer - server connectivity
- Add authorization for streamer connection.
- Streamer connecting flow:
- Send a POST API to the server to request create room. this request contains a secret that'll be used as the room's secret
- Initialize a WebSocket connection
- Send a secret
- server verifies. if match with room secret => authorize connection
- Streamer connecting flow:
Changelog
d017818 Add route for streamer chat
a491c21 Increase version and add how to use TUI Chat
fb96ade add change name commnad for chat
eccc230 add config command for chat TUI
00ee692 base layout for chat
f4ee862 fix chat msg flow
25614bc server add mechanism to verify websocket connection from streamer - Start with command
-
v1.0.012 Jul 2021Release notes
Open source →Server
- add boltDB : Currently, it only stores room info.
- There is a coroutine to periodically sync state from RAM to DB
- added a new api: POST /api/room : streamer must call this to request create room before connecting via WebSocket. This API performs some checks:
- version checking of TStream. if the version is not compatible => return 426 to streamer
- In case streamer requests to add a room already existed => user wants to reconnect, or maybe the room is taken by someone else. The server then checks the secret of the request with the room's Secret => if match then allows users to proceed
TStream
- Add check if the user starts TStream inside a TStream session: using
TSTREAM_SESSIONenv - When TStream is started it will generate a config at
~/.tstream.conf. Currently store: secret, and username - Version checking, display message require the user to upgrade if fails
Viewer
- Add show recent streams on home page
- Improve room state checking to display the right status
- Improve responsiveness
-
v0.1.007 Jul 2021Release notes
Open source →First release
- Basic tstream package for streamer
- Webapp for Viewers
- Center server for broadcasting
Features:
- 1 Streamer multiple viewers
- Chatting
-
v0.0.0-20220701043843-928b7cc203d001 Jul 2022 pre-releaseNothing published for this version
-
v0.0.0-20210821140147-34fc52f7fbb221 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210813141012-a47b9eeb0caa13 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210809093257-0c18818fc22509 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210808131745-7cd3e192e11b08 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210808091251-3c2a05d8b58f08 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210808024018-6c94231fc67308 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210803081426-4c5a1160958b03 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210803080023-4ec06f2e20f503 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20210731052515-6aa57865b04d31 Jul 2021 pre-releaseNothing published for this version
-
v0.0.0-20210731045648-0abcd40d081031 Jul 2021 pre-releaseNothing published for this version
-
v0.0.0-20210731040534-14a99ffa413131 Jul 2021 pre-releaseNothing published for this version
-
v0.0.0-20210729043508-b2d1b103bcd929 Jul 2021 pre-releaseNothing published for this version
-
v0.0.0-20210727002603-7113273f930d27 Jul 2021 pre-releaseNothing published for this version
-
v0.0.0-20210707095516-211a7a05862e07 Jul 2021 pre-releaseNothing published for this version
-
v0.0.0-20210707080036-a41a4530687d07 Jul 2021 pre-releaseNothing published for this version