wolfcw/libfaketime

libfaketime modifies the system time for a single application

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 2 hours ago
Added to GitGenius on September 22nd, 2026
Created on April 24th, 2011
Open Issues & Pull Requests: 42 (+0)
GitHub issues: Enabled
Number of forks: 379
Total Stargazers: 3,118 (+0)
Total Subscribers: 50 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.3 days
Mean response time: 109.4 days
90th percentile: 360.7 days
Tracked items: 69

How this project is maintained

97% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 33
New in 7 days: 0
Closed in 7 days: 7
Avg open age: 711 days
Stale 30+ days: 2
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 3
Comments in 7 days: 3
Events in 7 days: 7

Top labels

  • stale (38)
  • help wanted (4)
  • fix needs testing (2)
  • confirmed (1)
  • feature request (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

libfaketime is a library that intercepts system time calls to report modified dates and times to individual applications without changing the system clock.

The tool solves the problem of testing time-dependent behavior in isolation by using the linker's library preload mechanism to intercept system calls that retrieve the current date and time. It allows you to specify both absolute dates and relative offsets, so a program can be made to see any point in time you choose.

Developers should choose this tool when they need to test time-sensitive code in a controlled way or ensure reproducible builds. It works well for applications that rely on standard system time calls, but has limitations: it cannot intercept statically linked binaries or setuid programs, and some language runtimes that use vDSO or direct system calls may bypass the interposition entirely. The tool ships with a command-line wrapper called faketime for common use cases, though direct library use may be necessary for advanced scenarios.

The project maintains comprehensive continuous integration coverage across multiple platforms including macOS and various Linux distributions, with tests deliberately distinguishing between core functionality and optional runtime-specific checks. The documented C code examples are compiled and run in CI, including optional deterministic-random interfaces. Test infrastructure includes bounded Docker-based runs for local verification and time-bounded sanitizer jobs that upload complete logs on failure.