1) There are different choices you can make about simulating individual agents or aggregate flows along roads. Assuming you're interested in the former, you can advance the simulation in discrete time-steps using approaches like the intelligent driver model mentioned in another thread. Chapter 4 of
https://apps.cs.utexas.edu/tech_reports/reports/tr/TR-2157.p... is a different approach to the discrete time system that tries to handle complications that come up when applying to OpenStreetMap, like having a vehicle cross multiple roads and intersections in a single 0.1 second timestep, due to really short roads. If you're willing to throw away detailed movement (including acceleration and lane-changing), you can try a discrete-event approach, where you say "this vehicle enters one end of a road at time t, don't calculate anything for it until t + best_case_time_to_cross".
https://dabreegster.github.io/abstreet/trafficsim/index.html has some ideas there.
2) Another option with much less detailed traffic simulation, but much more UI focus, is abstreet.org