FYI the "limited" functionality of Rekordbox can be hardware unlocked with some Pioneer controllers.
If you are trying to dj in a performance sense, you really need a controller. When mixing songs into one another, there is often 2/3 things you have to do at once which is hard to do without dedicated knobs. But in this case, software really doesn't matter for basic functionality. As other said, mixxx is very good, and is very customizable - you can write javascript for any control. The paid software have a few more features, namely stems, which allow you to isolate vocals/instrumental/drums on the fly (whereas before you had to have separate tracks for each), which can make mixes sound a little bit clearer.
For complete info, if you are really trying to get into DJing from a performance standpoint, I highly recommend a standalone controller, namely Denon Prime Go.
Recently stumbled into some info with "DJ Studio" I think they are branding as.. ( https://linktr.ee/dj.studio )and it's got enough interesting bits (from what I saw via youtube'd talk..) they are trying to do to make me feel it's actually modern/future tech.
Have not used it yet, but plan to give it try.
To create prerecorded DJ sets https://www.mixmeister.com/
Been using both for at least 10 years, love them both.
If you're on HN it has to be Traktor. Nothing comes close in terms of configurability.
Assign any control to almost any function. (e.g. assigning loop out marker position to a knob then dialling the length down)
Set inc / Dec rates, static values.
Trigger / toggle / one-shot etc.
Define behaviours based on conditions (e.g. jog wheel when playing vs paused) Like many audio companies, it's now in the hands of psychopaths and so I can't vouch for recent versions.
I've been using Traktor2 for years and it's solid as these treacherous machines can be.