<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl" -->

---
title: I want extern "fil-c" | daily.dev
description: An argument for building a Rust FFI that speaks Fil-C's ABI, letting legacy C code run under Fil-C's memory-safe runtime (capabilities, checked pointers,...
canonical: https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: I want extern "fil-c" | daily.dev
og:description: An argument for building a Rust FFI that speaks Fil-C's ABI, letting legacy C code run under Fil-C's memory-safe runtime (capabilities, checked pointers,...
og:url: https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl
og:image: https://api.daily.dev/og/posts/jbh9JxDwL.png
og:image:alt: I want extern "fil-c"
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# I want extern "fil-c"

**[Lobsters](https://daily.dev/sources/lobsters)** · 4 min read · 0 upvotes · 0 comments

## Summary

An argument for building a Rust FFI that speaks Fil-C's ABI, letting legacy C code run under Fil-C's memory-safe runtime (capabilities, checked pointers, garbage collection) while Rust handles compile-time-safe hot paths. The author proposes a narrow first version (scalar values, copied strings/slices, opaque handles) with no unsafe escape hatch, points to filnix (a Nix cross-compilation platform packaging Fil-C with over 100 nixpkgs ports) as existing groundwork, and notes Zig's Andrew Kelley has proposed a similar fil ABI for Zig's own C/C++ interop. The piece ends with an invitation to collaborate on this at the OceanSprint event in Lanzarote.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://domenkozar.com/2026/08/13/i-want-extern-fil-c>

## Questions this post answers

### What is Fil-C and how does it make C memory-safe?

Fil-C is a recompiler for C and C++ that adds capabilities, runtime pointer checks, and a concurrent garbage collector, turning memory-safety violations into panics instead of exploits. It is source-compatible with standard C but intentionally not ABI-compatible, meaning it requires the whole program and its dependencies to use the Fil-C ABI rather than mixing with ordinary unsafe C.

_Track emerging memory-safety tooling like Fil-C as it evolves by following related coverage on daily.dev._

### Is there a way to call Fil-C compiled C code safely from Rust?

Not yet, but it has been proposed. Rust's ordinary extern "C" speaks the ABI Fil-C calls Yolo-C, so a real bridge would need Rust, Fil-C, or generated stubs to exchange values without breaking Fil-C's whole-program safety guarantee. A first version could stay narrow, supporting only scalar values, copied strings and slices, and opaque handles with no unsafe escape hatch back to plain C.

_Developers weighing Rust FFI safety trade-offs can follow how this bridge proposal develops on daily.dev._

### What is filnix and how does it relate to Fil-C?

filnix is a Nix cross-compilation platform, built by Mikael Brockman, that packages Fil-C and provides ports for more than 100 nixpkgs packages. It rebuilds the transitive dependency closure specifically for the Fil-C ABI instead of accidentally linking ordinary C into it, giving the ecosystem a reproducible toolchain and test bed for building a future Rust-Fil-C bridge.

_Anyone evaluating Nix-based cross-compilation for memory-safe C can keep up with filnix progress via daily.dev._

## Similar posts on daily.dev

- [Memory Safety Absolutists](https://daily.dev/posts/memory-safety-absolutists-sufigv3zl) · Hacker News · 1 upvotes · 0 comments

---

Tags: [#rust](https://daily.dev/tags/rust), [#zig](https://daily.dev/tags/zig)

[View this post on daily.dev](https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"I want extern \"fil-c\"","url":"https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl"},"datePublished":"2026-08-13T20:40:42.448Z","dateModified":"2026-08-13T20:56:32.802Z","description":"An argument for building a Rust FFI that speaks Fil-C's ABI, letting legacy C code run under Fil-C's memory-safe runtime (capabilities, checked pointers,...","image":"https://media.daily.dev/image/upload/s--1KxV4ohY--/f_auto/v1722860400/public/Placeholder%2007","thumbnailUrl":"https://media.daily.dev/image/upload/s--1KxV4ohY--/f_auto/v1722860400/public/Placeholder%2007","isAccessibleForFree":true,"articleSection":"Lobsters","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Lobsters","logo":"https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg","url":"https://daily.dev/sources/lobsters"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rust,zig","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Lobsters","item":"https://daily.dev/sources/lobsters"},{"@type":"ListItem","position":3,"name":"I want extern \"fil-c\""}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/i-want-extern-fil-c--jbh9jxdwl#faq","mainEntity":[{"@type":"Question","name":"What is Fil-C and how does it make C memory-safe?","acceptedAnswer":{"@type":"Answer","text":"Fil-C is a recompiler for C and C++ that adds capabilities, runtime pointer checks, and a concurrent garbage collector, turning memory-safety violations into panics instead of exploits. It is source-compatible with standard C but intentionally not ABI-compatible, meaning it requires the whole program and its dependencies to use the Fil-C ABI rather than mixing with ordinary unsafe C. Track emerging memory-safety tooling like Fil-C as it evolves by following related coverage on daily.dev."}},{"@type":"Question","name":"Is there a way to call Fil-C compiled C code safely from Rust?","acceptedAnswer":{"@type":"Answer","text":"Not yet, but it has been proposed. Rust's ordinary extern \"C\" speaks the ABI Fil-C calls Yolo-C, so a real bridge would need Rust, Fil-C, or generated stubs to exchange values without breaking Fil-C's whole-program safety guarantee. A first version could stay narrow, supporting only scalar values, copied strings and slices, and opaque handles with no unsafe escape hatch back to plain C. Developers weighing Rust FFI safety trade-offs can follow how this bridge proposal develops on daily.dev."}},{"@type":"Question","name":"What is filnix and how does it relate to Fil-C?","acceptedAnswer":{"@type":"Answer","text":"filnix is a Nix cross-compilation platform, built by Mikael Brockman, that packages Fil-C and provides ports for more than 100 nixpkgs packages. It rebuilds the transitive dependency closure specifically for the Fil-C ABI instead of accidentally linking ordinary C into it, giving the ecosystem a reproducible toolchain and test bed for building a future Rust-Fil-C bridge. Anyone evaluating Nix-based cross-compilation for memory-safe C can keep up with filnix progress via daily.dev."}}]}
```

