September 11th, 2024

Zero Dependencies

Tim Bray launched 0dependencies.dev to promote minimizing software dependencies, addressing vulnerabilities and performance issues. Developers are encouraged to aim for zero dependencies, with a badge and potential hall of fame recognition.

Read original articleLink Icon
Zero Dependencies

Tim Bray has launched a project called 0dependencies.dev, which promotes the idea of minimizing software dependencies. The initiative stems from growing concerns in the tech community about the complexities and vulnerabilities associated with numerous dependencies in software development. Bray references Mike Perham's concept of "Kill Your Dependencies," emphasizing that while some dependencies are necessary, striving for fewer can lead to better performance and security. He suggests that developers should aim for zero dependencies, particularly when creating library code that is intended for broad use. To achieve this, he advises sticking to built-in language features and being selective about external libraries, especially for simple functions. Bray has created a badge that developers can display on their projects to signify their commitment to having zero dependencies. He is open to recognizing projects that meet this criterion and may establish a "0dependency hall of fame" in the future. The project is not intended to start a movement but rather to encourage developers to critically evaluate their use of dependencies.

- Tim Bray's 0dependencies.dev promotes minimizing software dependencies.

- The initiative addresses concerns about vulnerabilities and performance issues related to excessive dependencies.

- Developers are encouraged to aim for zero dependencies, especially in library code.

- A badge is available for projects that achieve zero dependencies.

- Bray may recognize notable projects with a "0dependency hall of fame."

Link Icon 1 comments
By @rurban - 7 months
Green:

    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="110" height="20" role="img" aria-label="⓿: dependencies!">
      <title>⓿: dependencies!</title>
      <a target="_blank" xlink:href="https://0dependencies.dev">
        <linearGradient id="s" x1="50%" y1="0%" x2="50%" y2="100%">
          <stop stop-color="#34D058" offset="0%"></stop>
          <stop stop-color="#28A745" offset="100%"></stop>
        </linearGradient>
        <clipPath id="r">
          <rect width="110" height="20" rx="3" fill="#fff"/>
        </clipPath>
        <g clip-path="url(#r)">
          <rect width="21" height="20" fill="#555"/>
          <rect x="21" width="89" height="20" fill="#d1331b"/>
          <rect width="110" height="20" fill="url(#state-fill)"/>
        </g>
        <g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110">
          <text aria-hidden="true" x="115" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="110">⓿</text>
          <text x="115" y="140" transform="scale(.1)" fill="#fff" textLength="110">⓿</text>
          <text aria-hidden="true" x="645" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="790">dependencies!</text>
          <text x="645" y="140" transform="scale(.1)" fill="#fff" textLength="790">dependencies!</text>
        </g>
      </a>
    </svg>