Knives. They don't need to be big either, you just gotta know a little bit about human anatomy. The plueral cavity in which your lungs reside can be reached easily with a 3 inch blade. A tension pneumothorax left unattended is a quick and gruesome way to dispatch some one. Jugular and femoral arteries are easily accessible with a three inch blade. Your sternum is mostly cartilage and with the correct placement the heart is also reached with a short blade. If you're not confident with placing a point in those targets, the eyes (penetrated), the forehead, or right under the nose and above the lip (slashed horizontally) will buy you time to bail.
A Crystal Bic pen with the nib and ink removed can be fashioned into a point that is both strong enough and sharp enough to penetrate the rib cage. Even through clothing if sharpened properly. Which can be done through friction on carpet or concrete.
Ballast, padlocks, soap in a tube sock. Use your imagination here.
A garrote. This is going to take some practice to implement if your actively being attacked. Style points if you pull it off though.
Guns are great, you just have to understand the laws around owning, carrying and using them in your area or any area you may be traveling through.
Self-defense is a complicated word when it comes to dealing with it in a court of law. You have to be prepared and know that you will more than likely be arrested for defending your self if you use any sort of weapon. Especially if your attacker is dispatched from this realm. Some states even have a duty to retreat law. In other words you have to run away. You're not even allowed to defend yourself. Not to mention if you're perceived as homeless we already know the law could give two shits about you.
I could go on and on about this. Also E&E in the event of being unlawfully restrained. I.e. being kidnapped and how to escape restraints etc.
Be safe, be vigilant.