惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
T
Tor Project blog
U
Unit 42
G
Google Developers Blog
T
The Blog of Author Tim Ferriss
Recorded Future
Recorded Future
B
Blog
I
InfoQ
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
小众软件
小众软件
Spread Privacy
Spread Privacy
T
Tenable Blog
C
Cybersecurity and Infrastructure Security Agency CISA
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
I
Intezer
P
Proofpoint News Feed
A
About on SuperTechFans
S
Securelist
D
DataBreaches.Net
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
大猫的无限游戏
大猫的无限游戏
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
V
Visual Studio Blog
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
博客园 - 司徒正美
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
Vercel News
Vercel News
T
Threatpost
博客园 - Franky
有赞技术团队
有赞技术团队
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 热门话题

Deno

Deno 2.8 | Deno Claw Patrol: an open-source security firewall for agents | Deno Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno Build a dinosaur runner game with Deno, pt. 6 | Deno Build a dinosaur runner game with Deno, pt. 5 | Deno Deno Deploy is Generally Available | Deno Introducing Deno Sandbox | Deno Build a dinosaur runner game with Deno, pt. 4 | Deno Build a dinosaur runner game with Deno, pt. 3 | Deno Build a dinosaur runner game with Deno, pt. 2 | Deno React / Next.js Denial-of-Service Vulnerability: Deno Deploy users protected | Deno Deno 2.6: dx is the new npx | Deno Build a dinosaur runner game with Deno, pt. 1 | Deno React Server Functions / Next.js Vulnerability: Deno Deploy users protected | Deno My highlights from the new Deno Deploy | Deno Deno's Other Open Source Projects | Deno How Deno protects against npm exploits | Deno Help Us Raise $200k to Free JavaScript from Oracle | Deno Deno 2.5: Permissions in the config file | Deno Fresh 2.0 Graduates to Beta, Adds Vite Support | Deno Deno 2.4: deno bundle is back | Deno JavaScript™ Trademark Update | Deno What's coming to JavaScript | Deno A brief history of JavaScript | Deno Reports of Deno's Demise Have Been Greatly Exaggerated | Deno An Update on Fresh | Deno How Plaid migrated 100 services to a new database platform 5x faster with Deno | Deno Deno 2.3: Improved deno compile, local npm packages, and more | Deno Add JSR packages with pnpm and Yarn | Deno Zero-config Debugging with Deno and OpenTelemetry | Deno Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot | Deno Deno v Oracle Update 3: Fighting the JavaScript Trademark | Deno Build a custom RAG AI agent in TypeScript and Jupyter | Deno How to get deep traces in your Node.js backend with OTel and Deno | Deno toranoana.deno #20 登録受付中(2025年3月14日) | Deno Node just added TypeScript support. What does that mean for Deno? | Deno The Dino 🦕, the Llama 🦙, and the Whale 🐋 | Deno Publish a lint rule, get a prize | Deno Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite | Deno If you're not using npm specifiers, you're doing it wrong | Deno How Deno's documentation is evolving | Deno Oracle justified its JavaScript trademark with Node.js—now it wants that ignored | Deno Introducing the JSR open governance board | Deno Intro to Wasm in Deno | Deno Announcing OpenAI on JSR | Deno Deno in 2024 | Deno Goodbye WinterCG, welcome WinterTC | Deno Build a SolidJS app with Deno | Deno Run your Next.js SSR app on Deno Deploy | Deno Solve Advent of Code 2024 with Deno and Win Prizes! | Deno Deno v. Oracle: Canceling the JavaScript Trademark | Deno Deno 2.1: Wasm Imports and other enhancements | Deno Build a Typesafe API with tRPC and Deno | Deno Self-contained Executable Programs with Deno Compile | Deno Build a Database App with Drizzle ORM and Deno | Deno Introducing your new JavaScript package manager: Deno | Deno Announcing Growthbook on JSR | Deno Build an Astro site with Deno | Deno How to convert CommonJS to ESM | Deno Announcing Deno 2 | Deno The Final Touches: What’s New In v2.0.0-rc.10 | Deno Announcing Stable V8 Bindings for Rust | Deno Deno 2.0 Release Candidate | Deno Secure, efficient private npm registries with Cloudsmith and Deno | Deno Painting the Plane as We Fly It: Designing JSR | Deno Introducing Web Cache API support on Deno Deploy | Deno Deno 1.46: The Last 1.x Release | Deno Protect your cloud spend with new Deno Deploy spend limits | Deno What we got wrong about HTTP imports | Deno Benchmarking AWS Lambda Cold Starts Across JavaScript Runtimes | Deno Announcing Supabase on JSR | Deno Deno 1.45: Workspace and Monorepo Support | Deno Introducing KV Backup for Deno Subhosting | Deno A Gentle Intro to TypeScript | Deno Announcing Hono on JSR | Deno How We Made the Deno Language Server Ten Times Faster | Deno How the Guardian uses Deno to audit accessibility and performance across their 2.7 million articles | Deno Introducing More Flexible Domain Association for Deno Subhosting | Deno The stabilization process of the Standard Library has begun | Deno Deno 1.44: Private npm registries, improved Node.js compat, and performance boosts | Deno How we built a secure, performant, multi-tenant cloud platform to run untrusted code | Deno The Deno Standard Library is now available on JSR | Deno How to document your JavaScript package | Deno Your Low Code Solution Needs an Escape Hatch | Deno Deno 1.43: Improved Language Server performance | Deno How Slack used Deno to save months of engineering effort in launching their new platform | Deno JSR Is Not Another Package Manager | Deno Announcing the Hookdeck SDK on JSR | Deno Announcing the Neon Serverless Driver on JSR | Deno An intro to TSConfig for JavaScript Developers | Deno How we built JSR | Deno How Netlify used Deno Subhosting to build a successful edge functions product | Deno Introducing Simpler Project Creation in Deno Deploy | Deno Deno 1.42: Better dependency management with JSR | Deno Introducing deployctl, the command line interface for Deno Deploy | Deno Introducing JSR - the JavaScript Registry | Deno How to add Monaco to a Next.js app and securely run untrusted user code | Deno Survey Results and Roadmap | Deno Deno 1.41: smaller deno compile binaries | Deno
How the creator of Homebrew simplifies distributing software with tea and Deno | Deno
Max Howell · 2023-07-25 · via Deno

This is a guest blog written by Max Howell, creator of Homebrew and founder/CEO of tea.

One of the biggest challenges with building open source software is the distribution — the build and release process, being able to support all major platforms, etc. This problem is something that we’re solving with tea.

tea, the spiritual successor to Homebrew, is a command-line universal interpreter, environment manager, and dependency manager that uses blockchain technology to compensate open source software maintainers. Since launching in November 2022, tea has over 10,000 users and is growing.

deno compile makes sharing software easy

As the creator of one of the most popular package managers for Mac, Homebrew, I understood that the biggest bottleneck for adopting open source software is distribution. I made the choice to write Homebrew in Ruby, as it came bundled with OS X, which meant that all users needed to do was clone the repository. When it came to tea, I was greatly inspired by Deno’s one-binary approach. Thanks to deno compile, I was able to write in TypeScript and compile it to a single binary.

Sharing Node or TypeScript applications is typically painful — users would need to have Node installed, clone or download the repo, run npm install, etc. Though there were npm modules that could help, such as pkg or nexe, they required additional configuration, especially for TypeScript projects.

With deno compile, you can compile your application into an executable that can run on major platforms with a single line.

Users can download the right binary for their platform and run tea from wherever they want to put it:

$ curl -Lo tea https://tea.xyz/$(uname)/$(uname -m)
$ chmod u+x ./tea
​
$ echo '# tea *really is* a standalone binary' | ./tea --sync glow
installing charm.sh/glow
pantries sync’d ⎷

   tea really is a standalone binary

Though hugely important in our distribution, deno compile is still one small part of our larger build and release process.

Build infrastructure made simple with Deno

Like most software on GitHub, we use GitHub Actions for the build and release process. All related scripts are written in TypeScript and run with Deno, and glued together with a bunch of GitHub .yaml.

Deno’s robust built-in toolchain for linting, typechecking, testing, and compiling, removes a ton of overhead.

— Max Howell

Here are main steps of our build and release workflow is as follows:

  • Check if this version already published
  • Check out repo
  • Run tests with deno test
  • Upload coverage
  • Lint with deno lint
  • Download artifact and run deno compile
  • Bundle-src/ upload
  • Release to various platforms

deno compile can take any TypeScript or JavaScript file and compile it into a single binary executable that can work on Windows x64, macOS x64, macOS ARM, and Linux x64. Deno’s toolchain also meant we spent less time evaluating and configuring third party frameworks with our workflow and more time building product.

Composable, self-contained Deno scripts as build infrastructure

tea makes it simple for users to access and download any open source software to any platform. There are many challenges involved in making downloading any package that works like magic into a single keystroke, such as getting artifacts, tagging, packaging and compressing packages, etc. We simplified this complex process by using composable, self-contained Deno scripts as build infrastructure.

Deno’s URL import system is modern, simple, web compatible, and doesn’t bring in the cruft from existing package managing systems.

– Max Howell

All of this happens in our build infrastructure repo, teaxyz/brewkit, which is a set of Deno scripts and yaml files. Deno’s web compatible (see importing by URL) and decentralized approach towards dependencies means there is no separate dependency manifest required (e.g. “package.json”) for each script. They’re self-contained and composable — each can be run anywhere with a consistent outcome, executed on its own, imported into another script, or executed in a series during the GitHub Action process, etc. — which makes it easy to debug, maintain, and update.

For an example, check out this script that compresses packages for GNU Privacy Guard, which uses yaml frontmatter to list dependencies, flags to pass to deno run, and specific environment variables.

Deno 🤝 tea

We’re happy building tea with Deno. Besides the points mentioned in this post, there are many parallels between tea and Deno that make Deno a great technology partner. We are both modern, spiritual successors, challenging status quo, aiming to re-define how something is done.

Are you using Deno or tea in production? Let us know on Twitter or in Discord.