Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Deno+JSRでパッケージを作って公開する
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
asuka
November 08, 2024
Technology
450
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
More Decks by asuka
See All by asuka
GoとSIMDとWasmの今。
askua
3
610
2025年ふりかえり
askua
1
250
ライブラリを公開してメンテナンスした一年
askua
0
110
Wasmの気になる最新情報
askua
1
400
Wasmのエコシステムを使った ツール作成方法
askua
0
440
Pure Goで体験するWasmの未来
askua
1
1.1k
Wasmで社内ツールを作って配布しよう
askua
0
330
Wasm元年
askua
0
390
wstdなんだか良さそう
askua
0
160
Other Decks in Technology
See All in Technology
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
0
170
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
220
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
150
KAEN Company Deck
kaen
PRO
0
310
書籍『生成AIの安全性入門』の入門
wataoka
0
210
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
190
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
120
DMMブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
1
330
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.2k
Backstageでつくるセルフサービスな社内開発基盤
kikunosuke75
1
240
PfEingのアプローチで働こう
rindrics
0
170
enechainの内製セルフサービスプラットフォーム
hiyosi
0
100
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
560
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
410
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Language of Interfaces
destraynor
162
27k
From π to Pie charts
rasagy
0
350
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Designing for Timeless Needs
cassininazir
1
470
Transcript
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