GitShow/facebook/time
facebook

time

Meta's Time libraries

by facebook
Star on GitHubFork

Go

649 stars89 forks66 contributorsActive · 11h agoSince 2020Apache-2.0

Meet the team

See all 66 on GitHub →
leoleovich
leoleovich451 contributions
abulimov
abulimov234 contributions
vvfedorenko
vvfedorenko149 contributions
pmazzini
pmazzini63 contributions
t3lurid3
t3lurid339 contributions
crmdias
crmdias36 contributions
ESoapW
ESoapW35 contributions
yrk-lab
yrk-lab24 contributions

Languages

View on GitHub →
Go97%
C++1.8%
C1.1%
Makefile0.1%

Commit activity

Last 12 weeks · 162 commits

Full graph →

Community health

5 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct○Issue Template✓PR Template

Recent PRs & issues

Active · 1 in progress · Last activity 11h ago
See all on GitHub →
rootkiller6788
Fuzz RTCM3 frame validationOpenPR

Summary Adds a fuzz target for the package's entry point, which validates RTCM3 frame framing (preamble, 10-bit payload length) and CRC-24Q. is the core validator invoked by both and , the incremental scanners uses to ingest untrusted GNSS correction data from a socket. The package is the one network-facing binary parser without fuzz coverage; this matches the repo's existing OSS-Fuzz targets ( , , , , , , ). Verification passes (all existing tests) clean — 460k execs across 24 workers, 0 crashes Type tests

rootkiller6788 · 4d ago

Recent fixes

View closed PRs →
sofiascalzo
Move NTS cookie DerivedKeystore into an internal keystore packageMergedPR

Summary: Follow the JSONStats/fbstats pattern for the NTS cookie keystore: the open-source ntske package keeps the Keystore interface and the dumb InMemoryKeystore, while the Meta-specific fleet keystore lives internally. Single landing unit: it adds the internal keystore, removes the open-source derived plumbing, and rewires both mains, so the derived cookie-key logic is never duplicated across the open-source/internal boundary. New fbcode/ntp/ntske/keystore (package keystore): DerivedKeystore (HKDF-derived cookie keys from one Keychain-materialized master), master-key load that hex-decodes the Keychain value (whitespace stripped) and fails closed on a read error, bad hex, or an empty/under-length decoded key, plus MasterKeyFingerprint, Config, and NewKeystore. Implements ntske.Keystore and reuses the open-source cookie envelope. Placed under ntp/ntske/ to follow the per-binary subpackage convention. Open-source ntske: export the cookie envelope (SealEnvelope, OpenEnvelope) and MasterKeyLen -- now shared by InMemoryKeystore and the internal DerivedKeystore -- and delete derived_keystore.go and master_key.go together with their tests (derived_keystore_test.go, master_key_test.go). Verified no remaining OSS caller: cmd/ntskeserver already builds on InMemoryKeystore and cmd/ntsketest uses no keystore, so no cmd change is needed. Wire both internal mains (ntp/ntske, ntp/responder) to keystore.NewKeystore. Differential Revision: D115218895

sofiascalzo · 2w ago
sofiascalzo
Hex-decode the NTS cookie master key read from fileMergedPR

Summary: The NTS cookie master key is stored in Keychain hex-encoded (secrets_tool get_from_group NTS_COOKIE_MASTER_KEY TIME), so the Tupperware-materialized file holds 128 hex chars, not the 64 raw octets the keystore needs. Decode it in LoadMasterKeyFromFile: trim surrounding whitespace (e.g. a trailing newline), hex-decode to raw bytes, then length-validate. Malformed hex or an under-length decoded key fails closed so a bad key never starts the server. KE and NTP decode identically, so they still agree on the raw key. Reviewed By: leoleovich Differential Revision: D115199117

sofiascalzo · 2w ago
sofiascalzo
add smoke-test client and standalone KE server for chrony interopMergedPR

Summary: Adds two dev/test binaries under to exercise the NTS-KE server end-to-end. is a smoke-test client: it dials the KE server over TLS 1.3 with ALPN , sends a NextProtocol=NTPv4 + AEAD + request, parses the response, and prints . Flags: , (trust a self-signed dev cert), (stop after the KE handshake, since the NTPv4 phase is not implemented yet), and . It mirrors the server's unexported record reader because the package exposes no reader-based helper, and re-uses the exported / and record constructors. is a thin standalone server: it loads a cert/key with , builds an , and runs until SIGINT/SIGTERM. It is the counterpart the client and connect to for local interop testing. Reviewed By: leoleovich Differential Revision: D111491705

sofiascalzo · 2w ago
Structured data for AI agents

Repository: facebook/time. Description: Meta's Time libraries Stars: 649, Forks: 89. Primary language: Go. Languages: Go (97%), C++ (1.8%), C (1.1%), Makefile (0.1%). License: Apache-2.0. Open PRs: 1, open issues: 1. Last activity: 11h ago. Community health: 87%. Top contributors: leoleovich, abulimov, vvfedorenko, pmazzini, t3lurid3, crmdias, ESoapW, yrk-lab, deathowl, davide125 and others.

·@ofershap

Replace github.com with gitshow.dev