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
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
620
2025年ふりかえり
askua
1
250
ライブラリを公開してメンテナンスした一年
askua
0
120
Wasmの気になる最新情報
askua
1
410
Wasmのエコシステムを使った ツール作成方法
askua
0
450
Pure Goで体験するWasmの未来
askua
1
1.1k
Wasmで社内ツールを作って配布しよう
askua
0
340
Wasm元年
askua
0
410
wstdなんだか良さそう
askua
0
160
Other Decks in Technology
See All in Technology
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
290
beyond jj: config & tools ecosystem
indirect
0
5.7k
AIは推し活である。
kurazuuuuuu
1
930
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
33
30k
Making AI Agents Safe and Fast- Jev, Obsidian, and the Meta-Harness
x5gtrn
PRO
0
100
絵ではじめるKubernetesセキュリティ
aoi1
4
690
AI coding 整合正規方法
philipz
0
430
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
5
1.8k
AI時代、データエンジニアが一番おもろい
genshun9
0
680
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
560
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
260
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
400
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
340
The Language of Interfaces
destraynor
162
27k
Why Our Code Smells
bkeepers
PRO
340
58k
Ethics towards AI in product and experience design
skipperchong
2
380
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
A Modern Web Designer's Workflow
chriscoyier
699
190k
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