# GenServerVirtualTime v1.0.1 - Table of Contents > Virtual time for GenServer and gen_statem: test time-based processes and actor systems orders of magnitude faster than in wall-clock time, with a clock a test advances itself. ## Pages - Project - [Overview](readme.md) - [Changelog](changelog.md) - [Contributing](contributing.md) - [License](license.md) - Virtual Time - [VirtualClock Design](virtual_clock_design.md) - [Local Clock Injection](local_clock_injection_feature.md) ## Modules - [VirtualTimeGenServer.ModuleReferences](VirtualTimeGenServer.ModuleReferences.md): Finds the modules a source tree refers to. - [VirtualTimeGenServer.Packages](VirtualTimeGenServer.Packages.md): Which package of this library family owns a module, and what a project has to add when the module is missing. - Core - [GenServerVirtualTime](GenServerVirtualTime.md): Virtual time for `GenServer` and `:gen_statem`: test time-dependent processes by advancing a clock a test owns, instead of sleeping through the timeline. - [RealTimeBackend](RealTimeBackend.md): Real time backend using Process.send_after/3. - [TimeBackend](TimeBackend.md): Behaviour for time backends (real or virtual). - [VirtualClock](VirtualClock.md): A GenServer that manages virtual time for testing time-dependent behaviors. - [VirtualTimeBackend](VirtualTimeBackend.md): Virtual time backend using VirtualClock. - [VirtualTimeGenServer](VirtualTimeGenServer.md): A behavior module for GenServers with virtual time support. - [VirtualTimeGenServer.Doctor](VirtualTimeGenServer.Doctor.md): Turns a project's module references into the dependency lines it is missing. - [VirtualTimeGenServer.Instrumentation](VirtualTimeGenServer.Instrumentation.md): A port for observing what an instrumented process does. - [VirtualTimeGenStateMachine](VirtualTimeGenStateMachine.md): Use `VirtualTimeGenStateMachine` instead of `:gen_statem` to test timeouts and timers without waiting for them. ## Mix Tasks - [mix virtual_time.doctor](Mix.Tasks.VirtualTime.Doctor.md): Reports modules your project uses that live in another package of the family, and the dependency line that makes the build work again.