<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Packages on Sanketh's Blog</title><link>https://sankethbk.github.io/blog/tags/packages/</link><description>Recent content in Packages on Sanketh's Blog</description><generator>Hugo -- 0.160.1</generator><language>en-us</language><lastBuildDate>Sun, 29 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sankethbk.github.io/blog/tags/packages/index.xml" rel="self" type="application/rss+xml"/><item><title>Rust Notes — Module 7</title><link>https://sankethbk.github.io/blog/posts/rust/2026-03-29-rust-module-7-crates-packages-modules/</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate><guid>https://sankethbk.github.io/blog/posts/rust/2026-03-29-rust-module-7-crates-packages-modules/</guid><description>&lt;h1 id="rust-notes--module-7-packages-crates--modules"&gt;Rust Notes — Module 7: Packages, Crates &amp;amp; Modules&lt;/h1&gt;
&lt;hr&gt;
&lt;h2 id="1-how-rust-compilation-works"&gt;1. How Rust Compilation Works&lt;/h2&gt;
&lt;p&gt;In C, you hand the compiler a list of files. Each file compiles independently, and a linker stitches the object files together. The problem — the compiler has no idea which files depend on which, so you need a Makefile to track what needs recompiling when something changes.&lt;/p&gt;
&lt;p&gt;Rust takes a different approach. You hand the compiler &lt;strong&gt;one root file&lt;/strong&gt; (&lt;code&gt;main.rs&lt;/code&gt; or &lt;code&gt;lib.rs&lt;/code&gt;). The compiler follows &lt;code&gt;mod&lt;/code&gt; declarations to find every other file that&amp;rsquo;s part of the crate. Because Rust knows the full dependency graph from the start, it handles incremental recompilation internally — no Makefile needed.&lt;/p&gt;</description></item></channel></rss>