2965413374
This PR changes CI to build denort with a separate, new build profile `release-slim` that disables unwinding and strips symbols. This reduces the size of denort by about 10% current denort: ``` FILE SIZE VM SIZE -------------- -------------- 58.1% 39.3Mi 57.9% 39.3Mi __TEXT,__text 31.5% 21.3Mi 31.4% 21.3Mi __TEXT,__const 2.5% 1.68Mi 2.5% 1.68Mi __DATA_CONST,__const 2.4% 1.62Mi 2.4% 1.62Mi __TEXT,__eh_frame 2.4% 1.60Mi 2.4% 1.60Mi __TEXT,__gcc_except_tab 0.9% 610Ki 0.9% 610Ki __TEXT,__cstring 0.8% 536Ki 0.8% 536Ki Code Signature 0.7% 507Ki 0.7% 507Ki __TEXT,__unwind_info 0.3% 207Ki 0.3% 207Ki Function Start Addresses 0.2% 165Ki 0.2% 165Ki __DATA,__data 0.0% 0 0.2% 153Ki __DATA,__bss 0.1% 51.0Ki 0.1% 51.0Ki Rebase Info 0.1% 45.3Ki 0.1% 45.3Ki __TEXT,__literals 0.0% 31.4Ki 0.1% 36.8Ki [15 Others] 0.0% 25.6Ki 0.0% 25.7Ki [__TEXT] 0.0% 19.3Ki 0.0% 20.2Ki [__DATA] 0.0% 8.11Ki 0.0% 8.11Ki Lazy Binding Info 0.0% 8 0.0% 8.08Ki [__LINKEDIT] 0.0% 6.84Ki 0.0% 6.84Ki Symbol Table 0.0% 5.55Ki 0.0% 5.55Ki String Table 0.0% 5.53Ki 0.0% 5.53Ki __TEXT,__ustring 100.0% 67.6Mi 100.0% 67.8Mi TOTAL ``` built with this PR: ``` FILE SIZE VM SIZE -------------- -------------- 59.6% 36.6Mi 59.5% 36.6Mi __TEXT,__text 34.6% 21.3Mi 34.5% 21.3Mi __TEXT,__const 2.7% 1.68Mi 2.7% 1.68Mi __DATA_CONST,__const 1.0% 610Ki 1.0% 610Ki __TEXT,__cstring 0.8% 487Ki 0.8% 487Ki Code Signature 0.3% 193Ki 0.3% 193Ki Function Start Addresses 0.3% 165Ki 0.3% 165Ki __DATA,__data 0.0% 0 0.2% 153Ki __DATA,__bss 0.2% 152Ki 0.2% 152Ki __TEXT,__unwind_info 0.1% 69.5Ki 0.1% 69.5Ki __TEXT,__eh_frame 0.1% 50.9Ki 0.1% 50.9Ki Rebase Info 0.1% 45.3Ki 0.1% 45.3Ki __TEXT,__literals 0.1% 34.1Ki 0.1% 39.5Ki [15 Others] 0.0% 19.3Ki 0.0% 20.2Ki [__DATA] 0.0% 19.6Ki 0.0% 19.7Ki [__TEXT] 0.0% 16.6Ki 0.0% 16.6Ki __TEXT,__gcc_except_tab 0.0% 8.09Ki 0.0% 8.09Ki Lazy Binding Info 0.0% 8 0.0% 7.69Ki [__LINKEDIT] 0.0% 6.83Ki 0.0% 6.83Ki Symbol Table 0.0% 5.77Ki 0.0% 5.77Ki [__DATA_CONST] 0.0% 5.53Ki 0.0% 5.53Ki __TEXT,__ustring 100.0% 61.4Mi 100.0% 61.6Mi TOTAL ``` A caveat is that this will increase release build times in CI since it requires building twice - once with unwinding and once without |
||
---|---|---|
.cargo | ||
.devcontainer | ||
.github | ||
bench_util | ||
cli | ||
ext | ||
resolvers | ||
runtime | ||
tests | ||
tools | ||
.dlint.json | ||
.dprint.json | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
import_map.json | ||
LICENSE.md | ||
README.md | ||
Releases.md | ||
rust-toolchain.toml |
Deno
Deno
(/ˈdiːnoʊ/, pronounced
dee-no
) is a JavaScript, TypeScript, and WebAssembly runtime with secure
defaults and a great developer experience. It's built on V8,
Rust, and Tokio.
Learn more about the Deno runtime in the documentation.
Installation
Install the Deno runtime on your system using one of the commands below. Note that there are a number of ways to install Deno - a comprehensive list of installation options can be found here.
Shell (Mac, Linux):
curl -fsSL https://deno.land/install.sh | sh
PowerShell (Windows):
irm https://deno.land/install.ps1 | iex
Homebrew (Mac):
brew install deno
Chocolatey (Windows):
choco install deno
WinGet (Windows):
winget install --id=DenoLand.Deno
Build and install from source
Complete instructions for building Deno from source can be found in the manual here.
Your first Deno program
Deno can be used for many different applications, but is most commonly used to
build web servers. Create a file called server.ts
and include the following
TypeScript code:
Deno.serve((_req: Request) => {
return new Response("Hello, world!");
});
Run your server with the following command:
deno run --allow-net server.ts
This should start a local web server on http://localhost:8000.
Learn more about writing and running Deno programs in the docs.
Additional resources
- Deno Docs: official guides and reference docs for the Deno runtime, Deno Deploy, and beyond.
- Deno Standard Library: officially supported common utilities for Deno programs.
- deno.land/x: registry for third-party Deno modules.
- Developer Blog: Product updates, tutorials, and more from the Deno team.
Contributing
We appreciate your help! To contribute, please read our contributing instructions.