Urgent.News

What's breaking now, across thousands of outlets.

Tech

Nixpkgs for the frontend impaired

Nixpkgs, a repository containing over 140,000 packages built using the Nix language, has been successfully translated into TypeScript by the jinx tool. This translation preserves the exact drvPath of each package, allowing users to explore the Nix store model without needing to install Nix or its repository. The jinx tool produces TypeScript files that evaluate to the same values as their Nix counterparts, including the same thunks and derivation strings.

By converting the entire nixpkgs tree into TypeScript modules, users can leverage TypeScript's extensive tooling, editor support, and type system to interact with Nixpkgs. The evaluation of each attribute of nixpkgs' CI configuration in both jinx and Nix produced identical results, proving the faithfulness of the translation. While the translation process is slower than running Nix, the benefits of using TypeScript's tooling and editor support make this approach worthwhile for those interested in exploring the Nix store model from a different perspective.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at fzakaria.com →

More in Tech

Next.js 14: Server Components – May the Code Be With You

The Quest Begins (The "Why") Honestly, I was stuck in a loop. My Next.js 13 app felt like a sluggish hobbit trying to outrun a Nazgûl—every page load was a round‑trip to the server, fetching data…

  • Next.js 14 introduces Server Components, altering application architecture.
  • .server.tsx or .server.js files recognized as Server Components automatically.
  • Server Components integrate with Client Components, optimizing performance.

Getting software to work is just the beginning

Everything will work In application development, and probably in every IT field, almost any tool will get you to a working result.

  • Functional software is just the beginning; real work starts after basic functionality.
  • Code flexibility and ease of adaptation to domain changes are critical aspects.
  • Avoid boilerplate code and overly complex frameworks to understand domain better.

More from Tuesday 13 October →