i use miracast where I can (my TV and Samsung phone support it natively), as it pretty much just works and is a decent protocol. Sadly every phone manufacturer that isn’t Samsung seems to have abandoned it right now, but it is still widely supported in TVs. On Linux, there is the app gnome-network-displays (yes it also works on KDE) to cast your screen over miracast.
Miracast is an actual local streaming protocol (closely related to WiFi Direct). For content streaming the only FOSS standard I am aware of is FCast, but sofar it only is implemented in the GrayJay Android app.
Edit: There is also Deskreen for casting a PC screen.
For casting mobile to PC there is also scrcpy.
This isn’t really casting, but I often find that an HDMI cable (often paired with a USB-C to HDMI dongle) is the simplest and most reliable way to display a phone screen on another monitor (as long as the phone supports DP altmode).
Magic Earth (while not FOSS, it’s privacy oriented though) can do this.
There’s also Transportr, but AFAIK it’s been unmaintained for quite a while now, so it may not work / stop working soon.