Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Deno+JSRでパッケージを作って公開する
Search
asuka
November 08, 2024
Technology
460
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Deno+JSRでパッケージを作って公開する
ゆる勉強会 in 新宿御苑
https://engineers-anime.connpass.com/event/334179/
asuka
November 08, 2024
Transcript
19 slides
Deno+JSRで パッケージを作って 公開する 2024.11.9 ゆる勉強会 in 新宿御苑
asuka (@a_skua) • 株式会社モニクル/SWE • WebAssemblyの同人誌を書いている人 ◦ WebAssemblyでできること ▪ 商業誌:実践入門WebAssembly
◦ ご注文はWASIですか? ◦ ご注文はWASIですか?? ▪ 商業誌:WebAssembly System Interface入門 ◦ WebAssembly Cookbook vol.1 ◦ WebAssembly Cookbook vol.2 New!! 2 WHOIS 技術書典14 技術書典15 技術書典16 技術書典17 New WASIのまとまった情報あります↓↓ 技術書典17では会社名義の同人誌も発行してます Monicle Techbook vol.1 開発合宿レポート2024:モニクル開発部 ↑↑SNSのアイコンの本
3 本日 見本誌あります 再編集 再編集&加筆 Wasmの仕組みを知りたい方向け 最新のWasmの動向を知りたい人向け 実装方法や活用事例など Wasm本 同人誌→技術書典のオンラインマーケット
本日 数冊だけあります 1月の技書博でも一部配布します 商業誌Amazonなど WASI本 Cookbookシリーズ C.9 | 技術書典 WebAssembly System Interface入門 | インプレス NextPublishing
Deno+JSRでライブラリを作って公開する
Deno • ナウくてヤングなJSランタイム • TypeScriptをそのまま実行できる • FormatやTest,Lintも全てこれ1つでOK • Web標準の申し子 DenoとJSR
5 JSR • ナウくてヤングなJSパッケージレジストリ • “deno publishˮでパッケージを公開できる • TSをそのまま公開できるのが特徴 Deno : https://deno.com/ JSR : https://jsr.io/
COBOL.js 1.0.4 • COBOLのデータ表現をパースするために作成 ◦ (符号付き外部10進数をパースしたかっただけ) ◦ 0000000A COBOL ←→
1 JS の相互変換が可能 EBCDIC.js 1.0.0-rc2 • メインフレームで使われているらしいコーデック • Text{Encoder,Decoder} でサポートしていないので作成 • encodeとdenocdeをサポート 公開したパッケージ 6 COBOL.js : https://jsr.io/@askua/cobol EBCDIC.js : https://jsr.io/@askua/ebcdic import { EBCDIC_CCSID_37 } from "@askua/ebcdic"; // Encode const bin = EBCDIC_CCSID_37.encode("Hello, world!"); // Decode const str = EBCDIC_CCSID_37.decode(bin); import { SIGNED_NUMBER } from "@askua/cobol"; const a = SIGNED_NUMBER.parse("000A").as(); // 1 const b = SIGNED_NUMBER.parse("010{").as(); // 100 const c = SIGNED_NUMBER(a - b).toString(4)); // "009R" →いつメインフレーム案件来ても大丈夫
COBOL.jsとEBCDIC.jsのどちらもDenoで実装している • コードはただのTypeScript • Test,Lint,Format,Benchmark,Publish→これらをDenoの機能で行っている ◦ *_test.tsにテストを書いて,ˮdeno testˮを実行するだけ パッケージの作成 7
COBOL.jsとEBCDIC.jsのどちらもDenoで実装している • コードはただのTypeScript • Test,Lint,Format,Benchmark,Publish→これらをDenoの機能で行っている ◦ ˮdeno lintˮを実行するだけ パッケージの作成 8
$ deno lint Checked 3 files
COBOL.jsとEBCDIC.jsのどちらもDenoで実装している • コードはただのTypeScript • Test,Lint,Format,Benchmark,Publish→これらをDenoの機能で行っている ◦ ˮdeno fmtˮを実行するだけ パッケージの作成 9
$ deno fmt Checked 6 files
COBOL.jsとEBCDIC.jsのどちらもDenoで実装している • コードはただのTypeScript • Test,Lint,Format,Benchmark,Publish→これらをDenoの機能で行っている ◦ *_bench.tsにベンチマークテストを書いて,ˮdeno benchˮを実行するだけ パッケージの作成 10
COBOL.jsとEBCDIC.jsのどちらもDenoで実装している • コードはただのTypeScript • Test,Lint,Format,Benchmark,Publish→これらをDenoの機能で行っている パッケージの作成 11 →テストライブラリもリンターもフォーマッターも,全部DenoでOK
COBOL.jsとEBCDIC.jsのどちらもDenoで実装している • コードはただのTypeScript • Test,Lint,Format,Benchmark,Publish→これらをDenoの機能で行っている パッケージの作成 12 →ライブラリの利用者のことを考えると,JSにトランスパイルしないといけない
それ,JSRで解決できるよ
COBOL.jsとEBCDIC.jsのどちらもDenoで実装している • コードはただのTypeScript • Test,Lint,Format,Benchmark,Publish→これらをDenoの機能で行っている パッケージの作成 14 →ˮdeno publishˮで,JSRにパッケージを公開できる
• Denoの場合,ˮdeno add jsr:@askua/cobolˮでパッケージを追加できる • npmの場合,ˮnpx jsr add @askua/cobolˮでパッケージを追加できる •
yarnの場合(ry JSRにパッケージを公開すると... 15 →ユーザーがJSにトランスパイルせずとも,Node.js上でライブラリを利用できるようになる🎉
• Docsもあるよ🎉 JSRにパッケージを公開すると... 16
• JSにトランスパイルせずともTSを直接実行できる • testもfmtもlintもbenchも必要なものは初めからある ◦ テストライブラリを後から導入しなくても良い ◦ リンターやフォーマッターも後から導入しなくても良い • Node.js向けにJSにトランスパイルする必要がない
• パッケージレジストリ上にDocsも公開される Deno+JSRで構築する幸せのスパイラル 17 アニメぼっちざろっくより『幸せスパイラル』
2024.11.9 ゆる勉強会 in 新宿御苑 Deno+JSRでライブラリを作って公開する
WebAssembly / Wasm Advent Calendar 2024 19 Wasmのアドカレやってます🎄 入門〜玄人ネタまで,Wasmに関するネタであればなんでもOK!! Qiita
: WebAssembly / Wasm Advent Calendar 2024
More Decks by asuka
See All by asuka
GoとSIMDとWasmの今。
askua
3
660
2025年ふりかえり
askua
1
260
ライブラリを公開してメンテナンスした一年
askua
0
130
Wasmの気になる最新情報
askua
1
430
Wasmのエコシステムを使った ツール作成方法
askua
0
480
Pure Goで体験するWasmの未来
askua
1
1.2k
Wasmで社内ツールを作って配布しよう
askua
0
350
Wasm元年
askua
0
430
wstdなんだか良さそう
askua
0
170
Other Decks in Technology
See All in Technology
ぼくのClaude Codeの使い方
falken
PRO
5
6.9k
人間+AIを「チーム」としてプロセスを再設計する
littlehands
2
2.5k
E2E Test というハーネス — AI時代の自動テスト民主化
daishukojima
1
670
DevOps Agentにあらゆるセキュリティインシデントのトリアージを任せた件
jirtosterone
1
140
2026-11-11 Tamachi.sre#7 PaCにインフラリソースの命を救われました。 / PaC saves the infra resource life
masasuzu
1
170
Go初心者のクラウドエンジニアが、デプロイを通して旨味を知っていく話
ryudai
1
210
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
1
880
_マネジメントする人される人ナイト_2026__良いチームを作っていきたい_お気持ち_.pdf
xkxaxkx
0
360
Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想
sergicalsix
0
300
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
190
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.7k
ゼロから作るWebアプリの新定番!?Amplify Gen 2 × AWS Blocksで実現する「開発速度とRDBの柔軟性のいいとこ取り」
amixedcolor
1
260
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7.1k
We Have a Design System, Now What?
morganepeng
55
8.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
480
Unsuck your backbone
ammeep
672
58k
The World Runs on Bad Software
bkeepers
PRO
72
12k
A better future with KSS
kneath
240
18k
Amusing Abliteration
ianozsvald
1
390
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
My Coaching Mixtape
mlcsv
0
390
The Invisible Side of Design
smashingmag
301
52k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k