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
420
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
560
2025年ふりかえり
askua
1
240
ライブラリを公開してメンテナンスした一年
askua
0
100
Wasmの気になる最新情報
askua
1
390
Wasmのエコシステムを使った ツール作成方法
askua
0
410
Pure Goで体験するWasmの未来
askua
1
1.1k
Wasmで社内ツールを作って配布しよう
askua
0
320
Wasm元年
askua
0
380
wstdなんだか良さそう
askua
0
140
Other Decks in Technology
See All in Technology
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
410
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2.1k
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
130
AI Driven AI Governance
pict3
0
450
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
900
SRE Next 2026 何でも屋からの脱却
bto
0
770
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
260
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
SRE Lounge Hiroshimaへの招待
grimoh
0
670
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
270
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
250
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
A Tale of Four Properties
chriscoyier
163
24k
Product Roadmaps are Hard
iamctodd
55
12k
WCS-LA-2024
lcolladotor
0
690
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
GitHub's CSS Performance
jonrohan
1033
470k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
How to make the Groovebox
asonas
2
2.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
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