title: Why can a Cargo package only have one library target?
body: <p><a href="https://doc.rust-lang.org/book/ch07-01-packages-and-crates-for-making-libraries-and-executables.html" rel="noreferrer">According to its manual</a>, Cargo packages can have multiple executable targets, but only one library target is allowed. </p>
  
  <blockquote>
    <p>A package can contain zero or one library crates and as many binary crates as you’d like. There must be at least one crate (either a library or a binary) in a package.</p>
  </blockquote>
  
  <p>Why is it limited to one? What are the reasons and benefits?</p>