English

Filament: Denning-Style Information Flow Control for Rust

Programming Languages 2026-04-17 v1 Cryptography and Security

Abstract

Existing language-based information-flow control (IFC) tools face a fundamental tension: Denning-style systems that track explicit and implicit flows at the variable level typically require compiler modifications, while more coarse-grained approaches, including recent work Cocoon, avoid compiler changes but impose more restrictive programming models. We present Filament, a Denning-style static IFC library for Rust that requires no compiler modifications. Filament addresses three key challenges in building a practical IFC library for Rust. First, it enables fine-grained explicit-flow checking with minimal annotation overhead by leveraging Rust's type inference. Second, it introduces pc_block!, a lightweight construct for enforcing implicit flows via a compile-time program counter label, without requiring compiler support. Third, it provides fcall! and mcall! macros to support seamless and safe interoperability with standard and third-party libraries. Our evaluation shows that Filament incurs negligible compile-time overhead and requires only modest annotations. Moreover, compared to Cocoon, Filament offers a more permissive programming model, reducing the need for frequent escape hatches that bypass security checks.

Keywords

Cite

@article{arxiv.2604.14357,
  title  = {Filament: Denning-Style Information Flow Control for Rust},
  author = {Jeffrey C. Ching and Quan Zhou and Danfeng Zhang},
  journal= {arXiv preprint arXiv:2604.14357},
  year   = {2026}
}
R2 v1 2026-07-01T12:11:35.079Z