Farhaan Bukhsh

Farhaan Bukhsh

@fhackdroid

Type-Driven API Design in Rust: Lessons from Building Feluda

Submitted Mar 13, 2026

Rust’s type system is often discussed in the context of memory safety, but one of its most practical strengths is API design. In this talk, I’ll show how Rust’s type system can help us design APIs that are easier to use correctly, harder to misuse, and clearer about what is and is not valid.

This talk explores how Rust’s type system can be used not just for memory safety, but for designing better APIs. Using Feluda—a Rust-based dependency and license analysis tool—as a running case study, I’ll show how patterns like enums, typestate, capability modeling, and progressive builders can make APIs easier to use correctly and harder to misuse. The focus is on practical lessons for real-world Rust tools, libraries, and developer platforms.

Key Takeaways

Attendees will learn:

  • How to move API constraints from runtime checks and documentation into Rust types.

  • Practical patterns for designing safer APIs using enums, typestate, capability modeling, and progressive builders.

  • How lessons from building a real Rust tool like Feluda can be applied to CLIs, internal platforms, and reusable libraries.

Target Audience

  • Rust developers building libraries, CLIs, internal tools, or backend services

  • Engineers who want to improve API ergonomics and correctness

  • Intermediate developers who know basic Rust and want to design better abstractions

Speaker Bio

Farhaan Bukhsh is an open-source contributor and software engineer working across Rust, Python, and developer tooling. He has been involved in building community and production-oriented software in the open, and is particularly interested in API design, systems thinking, and creating tools. He works at OpenCraft and has been maintaining multiple projects under the Open edX umbrella. He is also a Release Manager with Open edX.

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

A community of Rust language contributors and end-users from Bangalore. We have presence on the following telegram channels https://t.me/RustIndia https://t.me/fpncr LinkedIn: https://www.linkedin.com/company/rust-india/ more