River engineering is the process of human planned actions in the course, characteristics, or flow of a river for some certain uses. Before recorded history, humans have intervened in the natural conditions of rivers for some purposes including managing the water resources, protecting against flooding, make passage along or across rivers easier. Rivers have been used as a source of hydropower since Roman times. With the spread of environmental concerns in the late 20th century, today the main purpose of some river engineering projects is protecting environment with some actions like the restoration or protection of natural characteristics and habitats.