Indoor localization is a key research area and has been stated as a major goal for Sixth Generation (6G) communications. Indoor localization faces many challenges, such as harsh wireless propagation channels, cluttered and dynamic environments, non-line-of-sight conditions, etc. There are various technologies that can be applied to address these issues. In this paper, four major technologies for implementing an indoor localization system are reviewed: Wireless Fidelity (Wi-Fi), Ultra-Wide Bandwidth Radio (UWB), Bluetooth Low Energy (BLE), and Inertial Measurement Units (IMU). Sections on Data Fusion (DF) and Machine Learning (ML) have been included as well due to their key role in Indoor Positioning Systems (IPS). These technologies have been categorized based on the techniques that they employ and the associated errors in localization. A brief comparison between these technologies is made based on specific performance metrics. Finally, the limitations of these techniques are identified to aid future research.