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
asuka
November 08, 2024
Technology
410
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
540
2025年ふりかえり
askua
1
240
ライブラリを公開してメンテナンスした一年
askua
0
95
Wasmの気になる最新情報
askua
1
380
Wasmのエコシステムを使った ツール作成方法
askua
0
400
Pure Goで体験するWasmの未来
askua
1
1.1k
Wasmで社内ツールを作って配布しよう
askua
0
310
Wasm元年
askua
0
370
wstdなんだか良さそう
askua
0
140
Other Decks in Technology
See All in Technology
人材育成分科会.pdf
_awache
4
310
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
170
When Platform Engineering Meets GenAI
sucitw
0
150
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
180
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
23
6.9k
AIのReact習熟度を測る
uhyo
2
660
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
260
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
420
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
200
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
440
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
110
Featured
See All Featured
Mind Mapping
helmedeiros
PRO
1
260
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
320
Product Roadmaps are Hard
iamctodd
PRO
55
12k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
210
Six Lessons from altMBA
skipperchong
29
4.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
How to train your dragon (web standard)
notwaldorf
97
6.7k
From π to Pie charts
rasagy
0
220
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
260
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
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