Featured with high performance density and energy efficiency, in-memory computing is emerging as an important ASIC formalism for computation-intensive tasks. In this review we will start with an introduction to the in-memory computing architecture, and then move on to discuss its two key enabling technologies, namely massive-capacity embedded memory and massively parallel analog computing, followed by applications and future prospect.