CINXE.COM
bunの人気記事 77件 - はてなブックマーク
<!DOCTYPE html> <html lang="ja" data-page-scope="EntrySearch" data-stable-request-url="https://b.hatena.ne.jp/q/bun" data-device-type="PC" data-sentry-environment="production" data-sentry-sample-rate="0.1" data-entry-search-query="bun" data-page-subtype="entrysearch" data-page-type="entrysearch" > <head> <!-- Google Tag Manager --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5TDHQX'); </script> <!-- End Google Tag Manager --> <meta charset="UTF-8"> <title>bunの人気記事 77件 - はてなブックマーク</title> <script src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/js/v4/bookmark.js" async></script> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/css/v4/pikaday.css" /> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/css/v4/triangle.css" /> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/css/v4/bookmark.css" /> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/css/v4/bookmark.star.css" /> <link rel="canonical" href="https://b.hatena.ne.jp/q/bun" /> <link rel="next" href="/q/bun?safe=on&target=tag&date_range=5y&page=2&sort=popular&users=3"> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> <meta name="viewport" content="width=device-width"> <link rel="search" type="application/opensearchdescription+xml" title="はてなブックマーク検索" href="/opensearch.xml" /> <link rel="apple-touch-icon-precomposed" href="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/apple-touch-icon-precomposed.png" /> <link rel="mask-icon" href="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/safari-pinned-tab-icon.svg" color="#00A4DE" /> <meta name="msapplication-navbutton-color" content="#2C6EBD" /> <meta name="msapplication-task" content="name=はてなブックマーク; action-uri=/; icon-uri=https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/icons/bookmark.ico" /> <meta name="msapplication-task" content="name=マイブックマーク; action-uri=/my; icon-uri=https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/icons/my-bookmark.ico" /> <meta name="msapplication-task" content="name=お気に入りのブックマーク; action-uri=/my/favorite; icon-uri=https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/icons/favorite-bookmark.ico" /> <meta name="msapplication-task" content="name=人気エントリー; action-uri=/hotentry; icon-uri=https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/icons/hotentry.ico" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="referrer" content="origin"> <link rel="alternate" type="application/rss+xml" href="/q/bun?sort=popular&date_range=5y&target=tag&safe=on&mode=rss&users=3" /> <script> function isMobile() { const html = document.documentElement; const deviceType = html.dataset.deviceType || ''; if (deviceType.length > 0) { return deviceType === 'MOBILE'; } else { const maxMobileWidth = 480; const windowWidth = window.innerWidth; return maxMobileWidth >= windowWidth; } } </script> </head> <body class="page-centerarticle page-entrysearch fixed-header"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5TDHQX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="link-app-banner js-dynamic-link-app-banner is-hidden"> <button class="link-app-banner-btn-close js-dynamic-link-app-banner-close-button"><span>close</span></button> <a class="link-app-banner-btn" href="https://hatenabookmark.page.link/app"> <div class="link-app-banner-btn-detail"> <div class="link-app-banner-icon"><img src="/images/v4/public/app/ic-ios.svg" alt="はてなブックマークアプリ"></div> <p class="link-app-banner-text">サクサク読めて、<br class="link-app-banner-text-newline">アプリ限定の機能も多数!</p> </div> <div class="link-app-banner-btn-open">アプリで開く</div> </a> </div> <header id="global-header" data-portal-static-origin="//cdn.www.st-hatena.com"> <div id="header" class="global-header-inner js-global-header-inner"> <h2 id="gh-logo"><a href="/" data-gtm-label="gh-blogo"><span>はてなブックマーク</span></a></h2> <div class="is-guest js-guest is-hidden"> <input id="gh-search-icon-check" type="checkbox" checked="checked" /> <label class="gh-search-icon" for="gh-search-icon-check" aria-label="検索を閉じる"><span>閉じる</span></label> <form class="gh-searchbox" method="get" action="/search_dwim" role="search"> <input value="" name="q" type="search" class="gh-inputtext" placeholder="キーワード・URLを検索" size="40" /> <input value="" type="submit" class="gh-search-button" /> </form> <ul class="gh-service-menu"> <li><a href="/guide" data-gtm-label="gh-guest-guide">はてなブックマークって?</a></li> <li><a href="/guide/tools" data-gtm-label="gh-guest-tools">アプリ・拡張の紹介</a></li> <li><a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2F%3Fregistered_from%3Dglobal-header&via=201037" class="gh-guest-register" data-gtm-label="gh-guest-register">ユーザー登録</a></li> <li><a href="https://www.hatena.ne.jp/login?location=https%3A%2F%2Fb.hatena.ne.jp%2Fq%2Fbun" rel="nofollow" class="gh-guest-login" data-gtm-label="gh-guest-login">ログイン</a></li> <li class="gh-hatena-logo"><a href="http://www.hatena.ne.jp/"><img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/logo/logo-global-white.svg" alt="Hatena" width="74px" height="13px"/></a></li> </ul> </div> <noscript> <ul class="gh-service-menu"> <li><a href="https://www.hatena.ne.jp/logout?location=https%3A%2F%2Fb.hatena.ne.jp%2F">ログアウト</a></li> </ul> </noscript> <script type="text/x-template" id="template-menu-hatena-user"> <form class="gh-searchbox" method="get" action="/search_dwim" role="search"> <input value="" name="q" type="search" class="gh-inputtext" placeholder="キーワード・URLを検索" size="40" /> <input value="" type="submit" class="gh-search-button" /> </form> <ul class="gh-service-menu"> <li><a class="hotentry" data-gtm-label="gh-mypage" href="{{hotentry_url}}"><img src="{{user_image_url}}" class="header-profile-icon" width="16" height="16" alt="{{username}}" /></a><a class="hotentry" data-gtm-label="gh-mypage" href="{{hotentry_url}}">マイページ</a></li> <li><a class="bookmark" data-gtm-label="gh-bookmark" href="{{bookmark_url}}">ブックマーク</a></li> <li><a class="unread_bookmark" data-gtm-label="gh-ril" href="{{bookmark_stock_url}}">あとで読む</a></li> <li><a class="add" data-gtm-label="gh-add" href="{{add_bookmark_url}}">追加</a></li> <li><a class="tools" data-gtm-label="gh-tools" href="/guide/tools">ツール</a></li> <li><a class="config" data-gtm-label="gh-config" href="/-/my/config/profile">設定</a></li> <li><a class="feedback" data-gtm-label="gh-feedback" href="/-/feedback/hatena_bookmark" target="_blank">フィードバック</a></li> <li id="header-username" class="gh-dropdown-services" data-gtm-label="gh-services" title="利用中のサービス" data-name="{{username}}"> <span class="header-dropdown gh-dropdown" tabindex="0"> <img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/common/usermenu-wh.svg" alt="利用中のサービス" width="24" height="24" /> </span> <dl class="header-window" id="username-window"></dl> </li> <li id="header-notify" data-gtm-label="gh-notify" class="gh-dropdown-notify" title="あなたへのお知らせ"> <span class="header-dropdown gh-dropdown" tabindex="0"> <img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/common/notify-wh.svg" alt="あなたへのお知らせ" width="25" height="25" /> <span class="notify-count"></span> </span> <div id="notify-window" class="header-window header-notify"></div> </li> <li class="gh-hatena-logo"><a href="http://www.hatena.ne.jp/"><img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/logo/logo-global-white.svg" alt="Hatena" width="74px" height="13px"/></a></li> </ul> </script> </div> </header> <div id="info-header"><div id="info-header-message"></div><span></span></div> <div class="global-notification is-hidden js-global-notification"></div> <div id="container"> <div class="entrysearch-searchbox"> <form class="entrysearch-searchbox-body js-entrysearch-form" method="get"> <input value="bun" type="text" class="entrysearch-searchbox-textInput js-entrysearch-form-text-input" size="40" aria-label="検索キーワードを入力"> <input value="tag" name="target" type="hidden"> <input value="popular" name="sort" type="hidden"> <input value="3" name="users" type="hidden"> <input value="on" name="safe" type="hidden"> <input value="検索" type="submit" class="entrysearch-searchbox-btn js-entrysearch-form-button" aria-label="検索"> </form> </div> <div class="centerarticle-wrapper"> <div class="left-container"> <div class="centerarticle-sidebar-menu"> <h3 class="centerarticle-aside-title">検索対象</h3> <ul class="centerarticle-sub-navi"> <li><a href="/q/bun?users=3&date_range=5y&target=all&sort=popular&safe=on" >すべて</a></li> <li><a href="/q/bun?users=3&safe=on&sort=popular&target=tag&date_range=5y" class="is-current">タグ</a></li> <li><a href="/q/bun?sort=popular&target=title&date_range=5y&safe=on&users=3" >タイトル</a></li> <li><a href="/q/bun?safe=on&sort=popular&date_range=5y&target=text&users=3" >本文</a></li> </ul> </div> <div class="centerarticle-sidebar-menu"> <h3 class="centerarticle-aside-title">並び順</h3> <ul class="centerarticle-sub-navi"> <li><a href="/q/bun?date_range=5y&target=tag&sort=recent&safe=on&users=3" >新着</a></li> <li><a href="/q/bun?safe=on&sort=popular&date_range=5y&target=tag&users=3" class="is-current">人気</a></li> </ul> </div> <div class="centerarticle-sidebar-menu"> <h3 class="centerarticle-aside-title">ブックマーク数</h3> <ul class="centerarticle-sub-navi"> <li><a href="/q/bun?sort=popular&date_range=5y&target=tag&safe=on&users=1" >1 user</a></li> <li><a href="/q/bun?safe=on&sort=popular&target=tag&date_range=5y&users=3" class="is-current">3 users</a></li> <li><a href="/q/bun?users=50&date_range=5y&target=tag&sort=popular&safe=on" >50 users</a></li> <li><a href="/q/bun?sort=popular&date_range=5y&target=tag&safe=on&users=100" >100 users</a></li> <li><a href="/q/bun?safe=on&target=tag&date_range=5y&sort=popular&users=500" >500 users</a></li> </ul> </div> <div class="centerarticle-sidebar-menu js-safe-search-div is-hidden" title="セーフサーチはログイン時にのみoffにできます"> <h3 class="centerarticle-aside-title">セーフサーチ</h3> <ul class="centerarticle-sub-navi"> <li><a href="/q/bun?target=tag&date_range=5y&sort=popular&safe=on&users=3" class="is-current">オン</a></li> <li><a href="/q/bun?users=3&date_range=5y&target=tag&sort=popular&safe=off" >オフ</a></li> </ul> </div> <div class="centerarticle-sidebar-menu js-entrysearch-date"> <h3 class="centerarticle-aside-title">期間指定</h3> <ul class="centerarticle-sub-navi"> <li><a href="/q/bun?users=3&safe=on&target=tag&date_range=all&sort=popular" >すべて</a></li> <li><a href="/q/bun?target=tag&date_range=w&sort=popular&safe=on&users=3" >1週間</a></li> <li><a href="/q/bun?safe=on&date_range=m&target=tag&sort=popular&users=3" >1ヶ月</a></li> <li><a href="/q/bun?sort=popular&target=tag&date_range=y&safe=on&users=3" >1年</a></li> </ul> <form method="get" class="js-entrysearch-datepicker-form"> <input value="bun" class="js-entrysearch-form-text-input" type="hidden"> <input value="tag" name="target" type="hidden"> <input value="popular" name="sort" type="hidden"> <input value="3" name="users" type="hidden"> <input value="on" name="safe" type="hidden"> <ul class="centerarticle-sub-navi"> <li><input class="js-entrysearch-datepicker-start entrysearch-searchbox-dateInput" value="" type="text" name="date_begin"> から</li> <li><input class="js-entrysearch-datepicker-end entrysearch-searchbox-dateInput" value="" type="text" name="date_end"> まで</li> <li><input value="検索" type="submit" class="entrysearch-searchbox-btn js-entrysearch-form-button"><li> </ul> </form> </div> </div> <div class="entrysearch-bar"> <p class="entrysearch-bar-results">1 - 40 件 / 77件</p> <div class="entrysearch-bar-inner"> <button class="entrysearch-filter-btn js-entrysearch-filter-btn">絞り込み</button> <a class="entrysearch-sort-btn" href="/q/bun?users=3&safe=on&target=tag&date_range=5y&sort=popular">新着順</a> <a class="entrysearch-sort-btn is-current" href="/q/bun?users=3&safe=on&sort=recent&date_range=5y&target=tag">人気順</a> </div> </div> <div class="entrysearch-filter js-entrysearch-filter is-hidden"> <div class="entrysearch-filter-header"> <h2 class="entrysearch-filter-title">絞り込み</h2> <button class="entrysearch-filter-close js-entrysearch-filter-close"></button> </div> <ul class="entrysearch-filter-list"> <li class="entrysearch-filter-item js-entrysearch-target-dropdown"> <h3 class="entrysearch-filter-item-head">検索対象</h3> <div class="entrysearch-filter-item-value-wrapper"> <select class="entrysearch-filter-item-value js-entrysearch-filter-target"> <option value="all" >すべて</option> <option value="tag" selected>タグ</option> <option value="title" >タイトル</option> <option value="text" >本文</option> </select> </div> </li> <li class="entrysearch-filter-item"> <h3 class="entrysearch-filter-item-head">ブックマーク数</h3> <div class="entrysearch-filter-item-value-wrapper"> <select class="entrysearch-filter-item-value js-entrysearch-filter-users"> <option value="1" >1 user</option> <option value="3" selected>3 users</option> <option value="50" >50 users</option> <option value="100" >100 users</option> <option value="500" >500 users</option> </select> </div> </li> <li class="entrysearch-filter-item"> <h3 class="entrysearch-filter-item-head">期間</h3> <div class="entrysearch-filter-item-value-wrapper"> <select class="entrysearch-filter-item-value js-entrysearch-filter-daterange"> <option value="all">すべて</option> <option value="w" >1週間</option> <option value="m" >1ヶ月</option> <option value="y" >1年</option> </select> </div> </li> <li class="entrysearch-filter-item js-safe-search-div is-hidden"> <h3 class="entrysearch-filter-item-head">セーフサーチ</h3> <div class="entrysearch-filter-checkbox"> <input type="checkbox" name="safesearch" id="safesearch" class="js-entryseach-safesearch" checked> <label class="entrysearch-filter-checkbox-label" for="safesearch"></label> </div> </li> </ul> <div class="entrysearch-filter-footer"> <button class="entrysearch-filter-search-btn styleguide-btn-primary js-entrysearch-filter-search-btn">検索する</button> <button class="entrysearch-filter-clear-btn styleguide-btn-text js-entrysearch-filter-clear-btn">条件をクリアする</button> </div> </div> <div class="search-container"> <h2 class="entrysearch-title"> <span class="entrysearch-word">bunの検索結果</span><span class="entrysearch-result">1 - 40 件 / 77件</span> </h2> <div class="entrysearch-summary-text"> <span>bun</span>に関するエントリは<span>77</span>件あります。 <span>javascript</span>、 <span>node.js</span>、 <span>techfeed</span> などが関連タグです。 人気エントリには <span>『OSSで世界と戦うために - ゆーすけべー日記』</span>などがあります。 </div> <div class="entrysearch-related-entries" data-gtm-inview-label="entry-search-recommend-header"> <h3 class="entrysearch-related-title">bunの関連エントリー</h3> <ul class="entrysearch-related-list"> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://qiita.com/rana_kualu/items/7f8ab7f51f2d7fb6a3e0" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/864cc6d6f8bf6f3f9d60b2bfd5c189e1b1e2c845/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkYwJTJGMjYwODglMkZwcm9maWxlLWltYWdlcyUyRjE1NjUwMTU3NDQ_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmZtPXBuZzMyJnM9N2Y1YzI1MzQ1ODMyOTk5ODM0MTY0YjQ2Yzc3YjQ5MzA%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253Dac270065f427e043e02ce1f16c64ed9d%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUUzJTgwJTkwQnVuJUUzJTgwJTkxSmF2YVNjcmlwdCVFMyU4MiU5MkMlRTglQTglODAlRTglQUElOUUlRTMlODElQTclRTYlOUIlQjglRTMlODElOTElRTMlODIlOEIlRTMlODIlODglRTMlODElODYlRTMlODElQUIlRTMlODElQUElRTMlODElQTMlRTMlODElOUYlRTMlODIlODgmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz0wNGQ0Yzg1ODY3YTZiYjY1NzNkZTdmNGU4NjcxNGZmZA%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDByYW5hX2t1YWx1JnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9OTRmMWRlNGQ0OTgyZWU5MDEyY2YyODliZmI3YzhkMTU%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D2284c675e593c27597af4c34d339f0aa" alt="【Bun】JavaScriptをC言語で書けるようになったよ - Qiita"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://qiita.com/rana_kualu/items/7f8ab7f51f2d7fb6a3e0" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> 【Bun】JavaScriptをC言語で書けるようになったよ - Qiita </a> </h4> <a href="/entry/s/qiita.com/rana_kualu/items/7f8ab7f51f2d7fb6a3e0" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 25 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://www.publickey1.jp/blog/24/javascriptbuncjavascript.html" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/f0f9927ffbff8734cbed504b46449715a273bf79/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2024%2Fbun-js-c01.png" alt="JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://www.publickey1.jp/blog/24/javascriptbuncjavascript.html" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート </a> </h4> <a href="/entry/s/www.publickey1.jp/blog/24/javascriptbuncjavascript.html" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 43 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://efcl.info/2024/10/06/bun-single-file-executable-binary/" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b26f7dc8f9e783316f720174980e93c627438d74/height=288;version=1;width=512/https%3A%2F%2Fefcl.info%2Fpublic%2Ffavicon.png" alt="BunでNode.jsのツールをSingle-file executable binaryにしてバイナリを配布する"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://efcl.info/2024/10/06/bun-single-file-executable-binary/" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> BunでNode.jsのツールをSingle-file executable binaryにしてバイナリを配布する </a> </h4> <a href="/entry/s/efcl.info/2024/10/06/bun-single-file-executable-binary/" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 40 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://bun.sh/blog/compile-and-run-c-in-js" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/common/noimage.png" alt="Compile and run C in JavaScript | Bun Blog"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://bun.sh/blog/compile-and-run-c-in-js" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> Compile and run C in JavaScript | Bun Blog </a> </h4> <a href="/entry/s/bun.sh/blog/compile-and-run-c-in-js" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 24 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://gihyo.jp/article/2024/08/misskey-15" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/0e1a56f5f0a68da81e43ac14ba541164a7f6d84d/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2FICON%2F2023%2F2030_misskey.png" alt="BunはNodeより速いのか? Misskeyで検証 | gihyo.jp"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://gihyo.jp/article/2024/08/misskey-15" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> BunはNodeより速いのか? Misskeyで検証 | gihyo.jp </a> </h4> <a href="/entry/s/gihyo.jp/article/2024/08/misskey-15" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 52 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://scrapbox.io/petamoriken/Bun_%E3%81%AE%E9%9D%9E%E4%BA%92%E6%8F%9B%E3%81%AA%E6%8B%A1%E5%BC%B5_API" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/0980314a6ad5faf838642b76430f1a132dd79a7f/height=288;version=1;width=512/https%3A%2F%2Fgyazo.com%2Fa71f94cf1c15e71313d8a2c16c59d1ab%2Fmax_size%2F1000" alt="Bun の非互換な拡張 API - moriken's project"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://scrapbox.io/petamoriken/Bun_%E3%81%AE%E9%9D%9E%E4%BA%92%E6%8F%9B%E3%81%AA%E6%8B%A1%E5%BC%B5_API" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> Bun の非互換な拡張 API - moriken's project </a> </h4> <a href="/entry/s/scrapbox.io/petamoriken/Bun_%E3%81%AE%E9%9D%9E%E4%BA%92%E6%8F%9B%E3%81%AA%E6%8B%A1%E5%BC%B5_API" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 23 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://www.publickey1.jp/blog/24/bun_115linuxwindows.html" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b1f4be7a0096d41205117e3c3988c62d220c783d/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2024%2F5VmCpiQQ.jpg" alt="Bun 1.1.5でクロスコンパイルが可能に。LinuxでWindows対応の実行ファイルなどビルド"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://www.publickey1.jp/blog/24/bun_115linuxwindows.html" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> Bun 1.1.5でクロスコンパイルが可能に。LinuxでWindows対応の実行ファイルなどビルド </a> </h4> <a href="/entry/s/www.publickey1.jp/blog/24/bun_115linuxwindows.html" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 33 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://zenn.dev/edash_tech_blog/articles/9b20228de60b43" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/5ca3941e1a21c3a4c6d61e50bc59eba123105982/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--0pxLOkrT--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E3%252583%252595%2525E3%252583%2525AD%2525E3%252583%2525B3%2525E3%252583%252588%2525E3%252582%2525A8%2525E3%252583%2525B3%2525E3%252583%252589%2525E3%252582%2525BF%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252582%252592Bun%2525E3%252581%2525A7%2525E5%2525AE%25259F%2525E8%2525A1%25258C%2525E3%252581%252597%2525E3%252581%2525A6%2525E3%252581%2525BF%2525E3%252581%25259F%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_34%3ARyosuke%252520Nakamura%252Cx_220%252Cy_108%2Fbo_3px_solid_rgb%3Ad6e3ed%252Cg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzNkZWM5ZjExNTcuanBlZw%3D%3D%252Cr_20%252Cw_90%252Cx_92%252Cy_102%2Fco_rgb%3A6e7b85%252Cg_south_west%252Cl_text%3Anotosansjp-medium.otf_30%3Ae-dash%252520Tech%252520Blog%252Cx_220%252Cy_160%2Fbo_4px_solid_white%252Cg_south_west%252Ch_50%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzU0YmE5NGJmZTEuanBlZw%3D%3D%252Cr_max%252Cw_50%252Cx_139%252Cy_84%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="フロントエンドタスクをBunで実行してみた"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://zenn.dev/edash_tech_blog/articles/9b20228de60b43" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> フロントエンドタスクをBunで実行してみた </a> </h4> <a href="/entry/s/zenn.dev/edash_tech_blog/articles/9b20228de60b43" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 16 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://www.publickey1.jp/blog/24/javascriptbun_11windowsnodejs.html" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/1dd1e0e70f19808cb5681675d5ceb93b5e6f5d4b/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2024%2Fbun11ga01.png" alt="JavaScriptランタイム「Bun 1.1」正式リリース。Windows版登場、Node.jsとの互換性向上、前バージョンより高速化など"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://www.publickey1.jp/blog/24/javascriptbun_11windowsnodejs.html" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> JavaScriptランタイム「Bun 1.1」正式リリース。Windows版登場、Node.jsとの互換性向上、前バージョンより高速化など </a> </h4> <a href="/entry/s/www.publickey1.jp/blog/24/javascriptbun_11windowsnodejs.html" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 13 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://bun.sh/blog/bun-v1.1" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-image"> <img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/common/noimage.png" alt="Bun 1.1 | Bun Blog"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://bun.sh/blog/bun-v1.1" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-header-a-title"> Bun 1.1 | Bun Blog </a> </h4> <a href="/entry/s/bun.sh/blog/bun-v1.1" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-header-a-users"> 17 users </a> </div> </li> </ul> </div> <ul class="entrysearch-articles"> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://yusukebe.com/posts/2023/oss-against-the-world/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://yusukebe.com/posts/2023/oss-against-the-world/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fyusukebe.com%2Fposts%2F2023%2Foss-against-the-world%2F" alt="">OSSで世界と戦うために - ゆーすけべー日記 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/yusukebe.com/posts/2023/oss-against-the-world/" class="js-keyboard-entry-page-openable" title="OSSで世界と戦うために - ゆーすけべー日記 (668 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 668 users </a> </span> </li> <li> <a href="/site/yusukebe.com/" title="『yusukebe.com』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> yusukebe.com </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/11/01</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">「日本人」を理由にしたくないし、「コードは全世界共通語」なのは分かっているけど、自分が日本人で日本語を母国語としていることはOSSにおいて不利になる。 この2年間のHonoの開発をしてきた経験で分かったことだ。 そこに目を瞑ってはいけないし、自覚することで世界と戦えるかもしれない。今回はそのことについて書こうと思う。 8k 現在、HonoのGitHubスター数は8,000を超えた。 これはとんでもない数字なんだけど、もっと伸びるべきで、早く1万を超えなくはいけない。 npmのダウンロード数は週間「46,000」とこれは相対的に低く、こちらも伸びるべきである。 数字が全てではないが、こうした数字は昨今のOSSにとって「一番の」指標であることは確かだ。 だから戦うことはこの数字を伸ばすことである。 なぜ「戦う」のか なんで「戦う」というおっかない言葉を使い、そして戦わなくてはいけないのか。 ま</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/oss" data-gtm-click-label="entry-search-result-item-tag">oss</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/github" data-gtm-click-label="entry-search-result-item-tag">github</a></li> <li><a href="/q/Hono" data-gtm-click-label="entry-search-result-item-tag">Hono</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" data-gtm-click-label="entry-search-result-item-tag">開発</a></li> <li><a href="/q/%E8%8B%B1%E8%AA%9E" data-gtm-click-label="entry-search-result-item-tag">英語</a></li> <li><a href="/q/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2" data-gtm-click-label="entry-search-result-item-tag">ソフトウェア</a></li> <li><a href="/q/Cloudflare" data-gtm-click-label="entry-search-result-item-tag">Cloudflare</a></li> <li><a href="/q/development" data-gtm-click-label="entry-search-result-item-tag">development</a></li> <li><a href="/q/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9" data-gtm-click-label="entry-search-result-item-tag">オープンソース</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://yusukebe.com/posts/2023/oss-against-the-world/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://yusukebe.com/posts/2023/oss-against-the-world/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/d18290203c0a447cd8fcc450b0e47c6c0bb90666/height=288;version=1;width=512/https%3A%2F%2Fss.yusukebe.com%2Fd326b43a8dbb8b730e66f114b43bc9863a7e7dbe451fc80475fb60f389d47641_800x445.png" alt="OSSで世界と戦うために - ゆーすけべー日記" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://qiita.com/shadowTanaka/items/5fb99819629dcaab3e05"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://qiita.com/shadowTanaka/items/5fb99819629dcaab3e05" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fqiita.com%2FshadowTanaka%2Fitems%2F5fb99819629dcaab3e05" alt="">Node.jsを過去の物にする最速の肉まん - Qiita </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/qiita.com/shadowTanaka/items/5fb99819629dcaab3e05" class="js-keyboard-entry-page-openable" title="Node.jsを過去の物にする最速の肉まん - Qiita (225 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 225 users </a> </span> </li> <li> <a href="/site/qiita.com/shadowTanaka" title="『qiita.com/shadowTanaka』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> qiita.com/shadowTanaka </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/07/08</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">その名はBun デデン BunはNode.jsやDenoのようなJavascriptランタイムです。(2022/7/8現在ベータ版) ちなみにロゴが本当に肉まんなのかはわかりません。(赤ちゃんの頭にも見えるけど名前がBun/パンだしなぁ...) この記事ではNode.jsやDenoと比較をしつつ、bunの解説させていただきます。 割となんでもできる Bunはただのランタイムではありません。下のように、開発に必須の多くな機能を最初から有しています。 TypescriptからJavascriptへのトランスパイル jsxからJavascriptへのトランスパイル npmのようなパッケージのインストール&管理 webpackのようなプロジェクトのバンドル化 もちろんランタイムなのでNode.jsのようにサーバーでJavascriptを実行することも可能です。 これらに加えてBunには様々な機</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/node" data-gtm-click-label="entry-search-result-item-tag">node</a></li> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/deno" data-gtm-click-label="entry-search-result-item-tag">deno</a></li> <li><a href="/q/TypeScript" data-gtm-click-label="entry-search-result-item-tag">TypeScript</a></li> <li><a href="/q/programming" data-gtm-click-label="entry-search-result-item-tag">programming</a></li> <li><a href="/q/npm" data-gtm-click-label="entry-search-result-item-tag">npm</a></li> <li><a href="/q/qiita" data-gtm-click-label="entry-search-result-item-tag">qiita</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://qiita.com/shadowTanaka/items/5fb99819629dcaab3e05"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://qiita.com/shadowTanaka/items/5fb99819629dcaab3e05" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/6e7d05d6d2d925c6a949cbb11a80bd38c73e3903/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9Tm9kZS5qcyVFMyU4MiU5MiVFOSU4MSU4RSVFNSU4RSVCQiVFMyU4MSVBRSVFNyU4OSVBOSVFMyU4MSVBQiVFMyU4MSU5OSVFMyU4MiU4QiVFNiU5QyU4MCVFOSU4MCU5RiVFMyU4MSVBRSVFOCU4MiU4OSVFMyU4MSVCRSVFMyU4MiU5MyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MWRkODJlZmNjNzA4OTQ0N2U2YjE5Y2U3MGM0ZTY1ZGU%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzaGFkb3dUYW5ha2EmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWExZWY1YmY3MGY2MGNiYmY2YTRlNDVkNzhhNGU4M2Fl%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dd4763f20a0abe2d02dc7d9ada56188bd" alt="Node.jsを過去の物にする最速の肉まん - Qiita" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://poku.io/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://poku.io/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fpoku.io%2F" alt="">Poku </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/poku.io/" class="js-keyboard-entry-page-openable" title="Poku (214 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 214 users </a> </span> </li> <li> <a href="/site/poku.io/" title="『poku.io』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> poku.io </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/07/17</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">🐷 What's Poku?A cross-platform test runner that brings the JavaScript essence back to testing. ⚡️ Quick Tutorials</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/test" data-gtm-click-label="entry-search-result-item-tag">test</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/%E3%83%86%E3%82%B9%E3%83%88" data-gtm-click-label="entry-search-result-item-tag">テスト</a></li> <li><a href="/q/Testing" data-gtm-click-label="entry-search-result-item-tag">Testing</a></li> <li><a href="/q/deno" data-gtm-click-label="entry-search-result-item-tag">deno</a></li> <li><a href="/q/nodejs" data-gtm-click-label="entry-search-result-item-tag">nodejs</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/dev" data-gtm-click-label="entry-search-result-item-tag">dev</a></li> <li><a href="/q/library" data-gtm-click-label="entry-search-result-item-tag">library</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://poku.io/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://poku.io/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/f1c5a05a86cc2a86fb3dba08ad6dbe50692a4b5d/height=288;version=1;width=512/https%3A%2F%2Fpoku.io%2Fimg%2Fsocial.png" alt="Poku" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/aishift/articles/ce9783a0d7acd0"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/aishift/articles/ce9783a0d7acd0" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Faishift%2Farticles%2Fce9783a0d7acd0" alt="">新規サービスのバックエンド開発で3ヶ月経ったので、試した技術や取り組みをまとめてみた </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/aishift/articles/ce9783a0d7acd0" class="js-keyboard-entry-page-openable" title="新規サービスのバックエンド開発で3ヶ月経ったので、試した技術や取り組みをまとめてみた (201 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 201 users </a> </span> </li> <li> <a href="/site/zenn.dev/aishift" title="『zenn.dev/aishift』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/aishift </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/02/20</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">こんにちは、AIShift バックエンドエンジニアの石井(@sugar235711)です。 AIShiftでは去年の11月からAI Worker[1]という新しいサービスの開発が始まりました。(以下AI Worker) 本格的に開発が始まり3ヶ月弱経ったので、その間に試してきた技術やチームの取り組みについてまとめてみたいと思います。 はじめに この記事では、AI Workerのおおまかな概要・設計を説明し、それらのバックエンドを実現する上でどのような技術を試してきたのか、技術以外でのチームの取り組みについてまとめます。 少し分量が多いので、ライブラリについての情報を求めている方は、目次から気になる部分を読んでいただければと思います。 何を作っているのか ざっくりまとめると、Microsoft Teams/Web上で動くAIを活用した業務改善プラットフォームを作成しています。 GPTとRAG</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/typescript" data-gtm-click-label="entry-search-result-item-tag">typescript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" data-gtm-click-label="entry-search-result-item-tag">開発</a></li> <li><a href="/q/Hono" data-gtm-click-label="entry-search-result-item-tag">Hono</a></li> <li><a href="/q/AI" data-gtm-click-label="entry-search-result-item-tag">AI</a></li> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/architecture" data-gtm-click-label="entry-search-result-item-tag">architecture</a></li> <li><a href="/q/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9" data-gtm-click-label="entry-search-result-item-tag">サービス</a></li> <li><a href="/q/Azure" data-gtm-click-label="entry-search-result-item-tag">Azure</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/aishift/articles/ce9783a0d7acd0"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/aishift/articles/ce9783a0d7acd0" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b2b7fc2df96ed4f535197029478ec621a35c2c1d/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--R0_B1HJ_--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E6%252596%2525B0%2525E8%2525A6%25258F%2525E3%252582%2525B5%2525E3%252583%2525BC%2525E3%252583%252593%2525E3%252582%2525B9%2525E3%252581%2525AE%2525E3%252583%252590%2525E3%252583%252583%2525E3%252582%2525AF%2525E3%252582%2525A8%2525E3%252583%2525B3%2525E3%252583%252589%2525E9%252596%25258B%2525E7%252599%2525BA%2525E3%252581%2525A73%2525E3%252583%2525B6%2525E6%25259C%252588%2525E7%2525B5%25258C%2525E3%252581%2525A3%2525E3%252581%25259F%2525E3%252581%2525AE%2525E3%252581%2525A7%2525E3%252580%252581%2525E8%2525A9%2525A6%2525E3%252581%252597%2525E3%252581%25259F%2525E6%25258A%252580%2525E8%2525A1%252593%2525E3%252582%252584%2525E5%25258F%252596%2525E3%252582%25258A%2525E7%2525B5%252584%2525E3%252581%2525BF%2525E3%252582%252592%2525E3%252581%2525BE%2525E3%252581%2525A8%2525E3%252582%252581%2525E3%252581%2525A6%2525E3%252581%2525BF%2525E3%252581%25259F%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_34%3Asugar-cat%252Cx_220%252Cy_108%2Fbo_3px_solid_rgb%3Ad6e3ed%252Cg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzhhNDQwNmNlMGUuanBlZw%3D%3D%252Cr_20%252Cw_90%252Cx_92%252Cy_102%2Fco_rgb%3A6e7b85%252Cg_south_west%252Cl_text%3Anotosansjp-medium.otf_30%3AAI%252520Shift%252520Tech%252520Blog%252Cx_220%252Cy_160%2Fbo_4px_solid_white%252Cg_south_west%252Ch_50%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzVlMTllYzU4NDAuanBlZw%3D%3D%252Cr_max%252Cw_50%252Cx_139%252Cy_84%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="新規サービスのバックエンド開発で3ヶ月経ったので、試した技術や取り組みをまとめてみた" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <div class="related-entry-wrapper"> <div class="entrysearch-related-entries" data-gtm-inview-label="entry-search-recommend-middle"> <h3 class="entrysearch-related-title">bunの関連エントリー</h3> <ul class="entrysearch-related-list"> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://togetter.com/li/2470890" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/1a47d147d76c3b76f7b6f187f35ccae620fbd1ac/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2Fd49ae55cf30b3fd3112c965dea75893a-1200x630.jpeg" alt="8歳で国家資格の第2種電気工事士に合格した小学3年生の女の子が話題に→「技能試験もあったはずなのに圧着ペンチを握れるのか...」"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://togetter.com/li/2470890" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> 8歳で国家資格の第2種電気工事士に合格した小学3年生の女の子が話題に→「技能試験もあったはずなのに圧着ペンチを握れるのか...」 </a> </h4> <a href="/entry/s/togetter.com/li/2470890" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 286 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://zenn.dev/tmknom/articles/readable-github-cicd-book" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/f4270f2b166a3550349b672ca457f04e1f746e95/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--v8r5fjhu--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E6%25259B%2525B8%2525E7%2525B1%25258D%2525E3%252580%25258EGitHub%252520CI%25252FCD%2525E5%2525AE%25259F%2525E8%2525B7%2525B5%2525E3%252582%2525AC%2525E3%252582%2525A4%2525E3%252583%252589%2525E3%252580%25258F%2525E3%252582%252592%2525E8%2525AA%2525AD%2525E3%252581%2525BF%2525E3%252582%252584%2525E3%252581%252599%2525E3%252581%25258F%2525E3%252581%252599%2525E3%252582%25258B%2525E6%25258A%252580%2525E8%2525A1%252593%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Atmknom%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly96ZW5uLWRldi5naXRodWIuaW8vZGVmYXVsdC1hdmF0YXJzL2RhcmsvdC5wbmc%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="書籍『GitHub CI/CD実践ガイド』を読みやすくする技術"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://zenn.dev/tmknom/articles/readable-github-cicd-book" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> 書籍『GitHub CI/CD実践ガイド』を読みやすくする技術 </a> </h4> <a href="/entry/s/zenn.dev/tmknom/articles/readable-github-cicd-book" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 216 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://www.itmedia.co.jp/news/articles/2411/26/news100.html" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/7034c064d827a8c98717d21521f772a96d890dc6/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fnews%2Farticles%2F2411%2F26%2Fcover_news100.jpg" alt="XのマスクCTO、「リンクはメインではなくリプライに入れろ」"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://www.itmedia.co.jp/news/articles/2411/26/news100.html" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> XのマスクCTO、「リンクはメインではなくリプライに入れろ」 </a> </h4> <a href="/entry/s/www.itmedia.co.jp/news/articles/2411/26/news100.html" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 393 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://anond.hatelabo.jp/20241126135931" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif" alt="加湿器は、象印かダイニチを買いましょう"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://anond.hatelabo.jp/20241126135931" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> 加湿器は、象印かダイニチを買いましょう </a> </h4> <a href="/entry/s/anond.hatelabo.jp/20241126135931" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 62 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://forest.watch.impress.co.jp/docs/news/1642468.html" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/8620973805a61940faf8515a723c9a62989867b2/height=288;version=1;width=512/https%3A%2F%2Fforest.watch.impress.co.jp%2Fimg%2Fwf%2Flist%2F1642%2F468%2Fimage_top.png" alt="MS-DOS用テキストエディター「VZ Editor」のソースコードが「GitHub」で公開/マニュアルや『PC Power』誌の連載なども。大量のマクロの公開にも期待"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://forest.watch.impress.co.jp/docs/news/1642468.html" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> MS-DOS用テキストエディター「VZ Editor」のソースコードが「GitHub」で公開/マニュアルや『PC Power』誌の連載なども。大量のマクロの公開にも期待 </a> </h4> <a href="/entry/s/forest.watch.impress.co.jp/docs/news/1642468.html" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 105 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://www.lifehacker.jp/article/2411-obisidian-finally-has-a-web-clipper/" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/74fab207ebac473627cdddf78bdd5273ab47d09c/height=288;version=1;width=512/https%3A%2F%2Fmedia.loom-app.com%2Floom%2F2024%2F11%2F25%2Feb09e308-9fce-4bf9-8055-722794ae99a6%2Foriginal.png%3Fw%3D1280%26h%3D630%26f%3Djpg" alt="隠れた名作メモアプリ「Obsidian」にウェブ記事をクリップできる機能が登場 | ライフハッカー・ジャパン"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://www.lifehacker.jp/article/2411-obisidian-finally-has-a-web-clipper/" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> 隠れた名作メモアプリ「Obsidian」にウェブ記事をクリップできる機能が登場 | ライフハッカー・ジャパン </a> </h4> <a href="/entry/s/www.lifehacker.jp/article/2411-obisidian-finally-has-a-web-clipper/" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 40 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://busmagazine.bestcarweb.jp/news/192941" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/9aae5178c7bd3bb212c01d99f370654a03f45865/height=288;version=1;width=512/https%3A%2F%2Fimg.bestcarweb.jp%2Fwp-content%2Fuploads%2Fsites%2F3%2F2024%2F11%2F18120645%2F5e4896966c9944fcf00890f4502605bf.jpg" alt="熊本のバス5社「共同経営」だと!? しかしそのデータ分析システムがすごかった! - バス総合情報誌「バスマガジン」公式WEBサイト"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://busmagazine.bestcarweb.jp/news/192941" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> 熊本のバス5社「共同経営」だと!? しかしそのデータ分析システムがすごかった! - バス総合情報誌「バスマガジン」公式WEBサイト </a> </h4> <a href="/entry/s/busmagazine.bestcarweb.jp/news/192941" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 107 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://gigazine.net/news/20241126-bluesky-ama/" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/ca0e24ac85417656d999b7a8b4076309f1a0d3e5/height=288;version=1;width=512/https%3A%2F%2Fi.gzn.jp%2Fimg%2F2024%2F11%2F26%2Fbluesky-ama%2F00.png" alt="「Blueskyの中の人だけど質問ある?」が実施され「鍵アカウント」や「トレンド」などの実装予定について語られる"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://gigazine.net/news/20241126-bluesky-ama/" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> 「Blueskyの中の人だけど質問ある?」が実施され「鍵アカウント」や「トレンド」などの実装予定について語られる </a> </h4> <a href="/entry/s/gigazine.net/news/20241126-bluesky-ama/" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 40 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://anond.hatelabo.jp/20241121173853" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif" alt="お前らなんで「ノアドット」を使ってるんだ!??!!"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://anond.hatelabo.jp/20241121173853" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> お前らなんで「ノアドット」を使ってるんだ!??!! </a> </h4> <a href="/entry/s/anond.hatelabo.jp/20241121173853" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 46 users </a> </div> </li> <li class="entrysearch-related-listitem"> <div class="entrysearch-related-entry"> <a href="https://github.com/vcraftjp/VZEditor" class="entrysearch-related-image" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-image"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/38009f195b2ddbae577bdc71ee5bf06e7e939938/height=288;version=1;width=512/https%3A%2F%2Fopengraph.githubassets.com%2F934d035c0e4d668f069e7e8afba98c769248d5d42a4b96fa505538970436b0e6%2Fvcraftjp%2FVZEditor" alt="GitHub - vcraftjp/VZEditor: MS-DOS Text Editor"> </a> <h4 class="entrysearch-related-entry-title"> <a href="https://github.com/vcraftjp/VZEditor" target="_blank" rel="noopener" data-gtm-click-label="entry-search-recommend-middle-title"> GitHub - vcraftjp/VZEditor: MS-DOS Text Editor </a> </h4> <a href="/entry/s/github.com/vcraftjp/VZEditor" class="entrysearch-related-users" data-gtm-click-label="entry-search-recommend-middle-users"> 76 users </a> </div> </li> </ul> </div> </div> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://speakerdeck.com/yusukebe/dokodemodong-kuwebhuremuwakuwotukuru"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://speakerdeck.com/yusukebe/dokodemodong-kuwebhuremuwakuwotukuru" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fspeakerdeck.com%2Fyusukebe%2Fdokodemodong-kuwebhuremuwakuwotukuru" alt="">どこでも動くWebフレームワークをつくる </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/speakerdeck.com/yusukebe/dokodemodong-kuwebhuremuwakuwotukuru" class="js-keyboard-entry-page-openable" title="どこでも動くWebフレームワークをつくる (169 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 169 users </a> </span> </li> <li> <a href="/site/speakerdeck.com/yusukebe" title="『speakerdeck.com/yusukebe』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> speakerdeck.com/yusukebe </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/03/19</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">YAPC::Kyoto 2023 2023-03-19 Yusuke Wada</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF" data-gtm-click-label="entry-search-result-item-tag">フレームワーク</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/framework" data-gtm-click-label="entry-search-result-item-tag">framework</a></li> <li><a href="/q/web" data-gtm-click-label="entry-search-result-item-tag">web</a></li> <li><a href="/q/Hono" data-gtm-click-label="entry-search-result-item-tag">Hono</a></li> <li><a href="/q/%E4%BB%95%E6%A7%98" data-gtm-click-label="entry-search-result-item-tag">仕様</a></li> <li><a href="/q/TypeScript" data-gtm-click-label="entry-search-result-item-tag">TypeScript</a></li> <li><a href="/q/%E7%92%B0%E5%A2%83" data-gtm-click-label="entry-search-result-item-tag">環境</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://speakerdeck.com/yusukebe/dokodemodong-kuwebhuremuwakuwotukuru"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://speakerdeck.com/yusukebe/dokodemodong-kuwebhuremuwakuwotukuru" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/ff3b92646ea0876b9e43f61933e4ac1aabfdd7eb/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F833757bf69e847fe9b36b422e99ee41d%2Fslide_0.jpg%3F24938436" alt="どこでも動くWebフレームワークをつくる" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/24/javascripttypescriptosbun_shelljavascriptbun.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/24/javascripttypescriptosbun_shelljavascriptbun.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F24%2Fjavascripttypescriptosbun_shelljavascriptbun.html" alt="">シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/24/javascripttypescriptosbun_shelljavascriptbun.html" class="js-keyboard-entry-page-openable" title="シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表 (159 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 159 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/01/30</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptランタイムのBunは、新機能としてシェルスクリプトをJavaScriptもしくはTypeScriptで記述し、特定のOSに依存せずに実行できる「Bun Shell」を発表しました。 シェルスクリプトは特定のシェルに依存するもの LinuxやmacOS、WindowsなどのOSは一般に、「シェル」(Shell)と呼ばれる機能を備えています。 シェルはコマンドラインインターフェイスなどのユーザーとの対話機能を備えており、例えばLinuxのコマンドラインで「ls」コマンドを打ち込むとファイルの一覧が返ってくるという動作はシェルが提供しています。 そしてシェルでは一般に、こうしたコマンドを複数つなげた一連の動作をスクリプトとして定義し実行できる「シェルスクリプト」が利用可能です。例えば、次のシェルスクリプトは、「ls」コマンドによるファイルの一覧をファイル「list.txt」に</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/shell" data-gtm-click-label="entry-search-result-item-tag">shell</a></li> <li><a href="/q/TypeScript" data-gtm-click-label="entry-search-result-item-tag">TypeScript</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89" data-gtm-click-label="entry-search-result-item-tag">コマンド</a></li> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/OS" data-gtm-click-label="entry-search-result-item-tag">OS</a></li> <li><a href="/q/linux" data-gtm-click-label="entry-search-result-item-tag">linux</a></li> <li><a href="/q/windows" data-gtm-click-label="entry-search-result-item-tag">windows</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/24/javascripttypescriptosbun_shelljavascriptbun.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/24/javascripttypescriptosbun_shelljavascriptbun.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/3b7f5c6a25ae5f9d04f79e728d8e7904c2e8aab2/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2024%2Fbunshell_la.png" alt="シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://bun.sh/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://bun.sh/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fbun.sh%2F" alt="">Bun — A fast all-in-one JavaScript runtime </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/bun.sh/" class="js-keyboard-entry-page-openable" title="Bun — A fast all-in-one JavaScript runtime (136 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 136 users </a> </span> </li> <li> <a href="/site/bun.sh/" title="『bun.sh』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> bun.sh </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2021/11/11</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Develop, test, run, and bundle JavaScript & TypeScript projects—all with Bun. Bun is an all-in-one JavaScript runtime & toolkit designed for speed, complete with a bundler, test runner, and Node.js-compatible package manager.</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/Zig" data-gtm-click-label="entry-search-result-item-tag">Zig</a></li> <li><a href="/q/TypeScript" data-gtm-click-label="entry-search-result-item-tag">TypeScript</a></li> <li><a href="/q/runtime" data-gtm-click-label="entry-search-result-item-tag">runtime</a></li> <li><a href="/q/bun.sh" data-gtm-click-label="entry-search-result-item-tag">bun.sh</a></li> <li><a href="/q/node" data-gtm-click-label="entry-search-result-item-tag">node</a></li> <li><a href="/q/css" data-gtm-click-label="entry-search-result-item-tag">css</a></li> <li><a href="/q/Node.js" data-gtm-click-label="entry-search-result-item-tag">Node.js</a></li> <li><a href="/q/js" data-gtm-click-label="entry-search-result-item-tag">js</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://bun.sh/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://bun.sh/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/02c835114e84d5736851a8e5d74eb319890ea2a7/height=288;version=1;width=512/https%3A%2F%2Fbun.sh%2Fshare.png" alt="Bun — A fast all-in-one JavaScript runtime" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry "> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://voluntas.medium.com/%E3%81%AA%E3%81%9C-zig-%E3%81%AE%E6%8E%A1%E7%94%A8%E3%82%92%E6%A4%9C%E8%A8%8E%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B-106f1ca2d25"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://voluntas.medium.com/%E3%81%AA%E3%81%9C-zig-%E3%81%AE%E6%8E%A1%E7%94%A8%E3%82%92%E6%A4%9C%E8%A8%8E%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B-106f1ca2d25" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fvoluntas.medium.com%2F%25E3%2581%25AA%25E3%2581%259C-zig-%25E3%2581%25AE%25E6%258E%25A1%25E7%2594%25A8%25E3%2582%2592%25E6%25A4%259C%25E8%25A8%258E%25E3%2581%2597%25E3%2581%25A6%25E3%2581%2584%25E3%2582%258B%25E3%2581%25AE%25E3%2581%258B-106f1ca2d25" alt="">なぜ Zig の採用を検討しているのか </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/voluntas.medium.com/%E3%81%AA%E3%81%9C-zig-%E3%81%AE%E6%8E%A1%E7%94%A8%E3%82%92%E6%A4%9C%E8%A8%8E%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B-106f1ca2d25" class="js-keyboard-entry-page-openable" title="なぜ Zig の採用を検討しているのか (126 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 126 users </a> </span> </li> <li> <a href="/site/voluntas.medium.com/" title="『voluntas.medium.com』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> voluntas.medium.com </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/07/22</span></li> </ul> </div> <div class="centerarticle-entry-contents "> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">かなり雑に書いてるので、雑に読んでください。 Bun が Zig で開発されていることを知り、そこから Zig を調べてみています。 調べていくと自分が求めていた言語っぽいというのがあり、社外では学生に QUIC や TLS 1.3 を Zig で OSS を開発してもらうお仕事を出したり、社内では実際に採用に向けて調査を進めています。 そもそもの目的自分の会社では Erlang VM を利用した製品をメインに利用しています。ただ Erlang VM 遅いんです。少なくとも暗号処理であれば Rust の方が 2 倍ほど速いです。Erlang VM 自体 JIT を採用したり、いろいろ頑張ってくれているのですが劇的な高速化というのは今すぐには難しいのが現実です。 そこで NIFs (Native Implemented Functions) を使って頑張るという戦略があります。早い話が Er</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/zig" data-gtm-click-label="entry-search-result-item-tag">zig</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/QUIC" data-gtm-click-label="entry-search-result-item-tag">QUIC</a></li> <li><a href="/q/programming" data-gtm-click-label="entry-search-result-item-tag">programming</a></li> <li><a href="/q/Rust" data-gtm-click-label="entry-search-result-item-tag">Rust</a></li> <li><a href="/q/C" data-gtm-click-label="entry-search-result-item-tag">C</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" data-gtm-click-label="entry-search-result-item-tag">開発</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://voluntas.medium.com/%E3%81%AA%E3%81%9C-zig-%E3%81%AE%E6%8E%A1%E7%94%A8%E3%82%92%E6%A4%9C%E8%A8%8E%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B-106f1ca2d25"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/yusukebe/articles/9a6335ed793c43"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/yusukebe/articles/9a6335ed793c43" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fyusukebe%2Farticles%2F9a6335ed793c43" alt="">Web標準のバックエンドアプリのテスト </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/yusukebe/articles/9a6335ed793c43" class="js-keyboard-entry-page-openable" title="Web標準のバックエンドアプリのテスト (122 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 122 users </a> </span> </li> <li> <a href="/site/zenn.dev/yusukebe" title="『zenn.dev/yusukebe』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/yusukebe </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/08/27</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">ここで言う「Web標準のバックエンドアプリ」とはCloudflare Workers、Deno、BunなどのWeb標準をサポートするランタイム上で動くWebアプリです。もしくは、Node.jsでもWeb標準のAPIをサポートしているので、これから紹介するアプリとテストコード自体はNode.js上も動きます。 これらのテストを書く、実行するのは実にシンプルで、拍子抜けしてしまうほどです。ですが、現在、20,000行あるHonoのテストコードは、これらのやり方と全く同じ方法を取っています。注目すべき点は、実際のサーバーを立ち上げることがなく、抽象化されたリクエストとレスポンスのやり取りを試験するだけで、品質が保たれる点です。Honoのテストでは、ランタイムによっては一部実サーバーを立ち上げますが、コアの20,000行ではサーバーを立ち上げていません。この抽象化はPythonのWSGI、Ruby</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/%E3%83%86%E3%82%B9%E3%83%88" data-gtm-click-label="entry-search-result-item-tag">テスト</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/web" data-gtm-click-label="entry-search-result-item-tag">web</a></li> <li><a href="/q/Cloudflare" data-gtm-click-label="entry-search-result-item-tag">Cloudflare</a></li> <li><a href="/q/test" data-gtm-click-label="entry-search-result-item-tag">test</a></li> <li><a href="/q/API" data-gtm-click-label="entry-search-result-item-tag">API</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/yusukebe/articles/9a6335ed793c43"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/yusukebe/articles/9a6335ed793c43" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/33a40c689fa4a1890d825722b1acd3836068587d/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--46WGf-6g--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3AWeb%2525E6%2525A8%252599%2525E6%2525BA%252596%2525E3%252581%2525AE%2525E3%252583%252590%2525E3%252583%252583%2525E3%252582%2525AF%2525E3%252582%2525A8%2525E3%252583%2525B3%2525E3%252583%252589%2525E3%252582%2525A2%2525E3%252583%252597%2525E3%252583%2525AA%2525E3%252581%2525AE%2525E3%252583%252586%2525E3%252582%2525B9%2525E3%252583%252588%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Ayusukebe%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2pIMWY1VlpnSFMwLUJwekhzZjRGYXN0R1ZYTlpfZFh1U2pwdWNMNGc9czI1MC1j%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="Web標準のバックエンドアプリのテスト" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/k41531/articles/dbedb88f06898a"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/k41531/articles/dbedb88f06898a" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fk41531%2Farticles%2Fdbedb88f06898a" alt="">【Bun】新しいJavaScriptランタイムについてふわっとまとめた </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/k41531/articles/dbedb88f06898a" class="js-keyboard-entry-page-openable" title="【Bun】新しいJavaScriptランタイムについてふわっとまとめた (119 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 119 users </a> </span> </li> <li> <a href="/site/zenn.dev/k41531" title="『zenn.dev/k41531』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/k41531 </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/07/14</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptランタイムと言えばnode。 nodeの代替としてdenoがありますが、新たにbunというものを知ったのでふわっとまとめてみました。次のリンクは、Bunを知るきっかけとなったものです。 トップのコメントを一部抜粋(DeepL翻訳) 私が興奮していることのひとつは、bun install です。 Linuxでは、シンプルなNext.jsアプリの依存関係を、現在利用できる他のnpmクライアントよりも20倍ほど速くインストールします。 Bunとは 「速くて All in One な Javascript ランタイム」 内容を見ていく前に、Bunへの注目度がわかるグラフをご覧ください。 7月6日からほぼ垂直にStarを獲得しており、7月11日までの五日間で約20倍になっています。すごい。 ここからは私が気になった内容をピックアップして紹介していきます。 All in One B</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89" data-gtm-click-label="entry-search-result-item-tag">フロントエンド</a></li> <li><a href="/q/Node.js" data-gtm-click-label="entry-search-result-item-tag">Node.js</a></li> <li><a href="/q/Node" data-gtm-click-label="entry-search-result-item-tag">Node</a></li> <li><a href="/q/npm" data-gtm-click-label="entry-search-result-item-tag">npm</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/k41531/articles/dbedb88f06898a"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/k41531/articles/dbedb88f06898a" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/be518c2154934dac25633ba119804715df046f8d/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--7yAmjAa8--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E3%252580%252590Bun%2525E3%252580%252591%2525E6%252596%2525B0%2525E3%252581%252597%2525E3%252581%252584JavaScript%2525E3%252583%2525A9%2525E3%252583%2525B3%2525E3%252582%2525BF%2525E3%252582%2525A4%2525E3%252583%2525A0%2525E3%252581%2525AB%2525E3%252581%2525A4%2525E3%252581%252584%2525E3%252581%2525A6%2525E3%252581%2525B5%2525E3%252582%25258F%2525E3%252581%2525A3%2525E3%252581%2525A8%2525E3%252581%2525BE%2525E3%252581%2525A8%2525E3%252582%252581%2525E3%252581%25259F%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Akaisei%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2Q4ZTJhN2E2NDcuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="【Bun】新しいJavaScriptランタイムについてふわっとまとめた" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/laiso/scraps/9a787a6888e228"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/laiso/scraps/9a787a6888e228" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Flaiso%2Fscraps%2F9a787a6888e228" alt="">なんでbun installは速いのか? </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/laiso/scraps/9a787a6888e228" class="js-keyboard-entry-page-openable" title="なんでbun installは速いのか? (111 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 111 users </a> </span> </li> <li> <a href="/site/zenn.dev/laiso" title="『zenn.dev/laiso』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/laiso </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/09/17</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">⚡️ 25x faster — Switch from npm install to bun install in any Node.js project to make your installations up to 25x faster. https://bun.sh/docs/cli/install という記述を見かけて直感的に、そうはならんやろと思ったものの実際にベンチマークをしているのでどういうことなのかを気になって調べた。 A global install cache. bun installを実行すると ~/.bun/install/cache/ 以下にnpmレジストリからダウンロードされたファイルの実体が展開されキャッシュされる(--cache-dirでパスを変更できる)。 キャッシュにはパッケージのバージョンごとのディレクトリとlatestのシンボリックリンクがある。こ</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/npm" data-gtm-click-label="entry-search-result-item-tag">npm</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/js" data-gtm-click-label="entry-search-result-item-tag">js</a></li> <li><a href="/q/performance" data-gtm-click-label="entry-search-result-item-tag">performance</a></li> <li><a href="/q/%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89" data-gtm-click-label="entry-search-result-item-tag">フロントエンド</a></li> <li><a href="/q/node" data-gtm-click-label="entry-search-result-item-tag">node</a></li> <li><a href="/q/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2" data-gtm-click-label="entry-search-result-item-tag">ソフトウェア</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/laiso/scraps/9a787a6888e228"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/laiso/scraps/9a787a6888e228" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b3af933cf8a2e19ba6f1eaedab1237dc50ec3b7d/height=288;version=1;width=512/https%3A%2F%2Fstorage.googleapis.com%2Fzenn-user-upload%2Favatar%2F3877407207.jpeg" alt="なんでbun installは速いのか?" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/23/javascriptbunwebpack200puppeteer.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/23/javascriptbunwebpack200puppeteer.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F23%2Fjavascriptbunwebpack200puppeteer.html" alt="">JavaScriptランタイムのBun、インストール不要の実行ファイル生成が可能に。Webpackより200倍以上高速とするバンドラがβ版、Puppeteerにも対応 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/23/javascriptbunwebpack200puppeteer.html" class="js-keyboard-entry-page-openable" title="JavaScriptランタイムのBun、インストール不要の実行ファイル生成が可能に。Webpackより200倍以上高速とするバンドラがβ版、Puppeteerにも対応 (109 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 109 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/06/06</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptランタイムのBun、インストール不要の実行ファイル生成が可能に。Webpackより200倍以上高速とするバンドラがβ版、Puppeteerにも対応 サーバサイドで実行可能なJavaScriptランタイム「Bun」は、5月に登場したバージョン0.6で、Bunをインストールすることなく、配置することでアプリケーションを実行できる単独の実行ファイルを生成できる「bun build」機能が搭載されました。 同じくバージョン0.6で高速なバンドラ「Bun Bundler」もβ版となり、6月に登場したバージョン0.6.7ではDiscordのボットを操作するDiscord.jsやWebブラウザを操作するPuppeteerなどの動作も確認されています。 下記はBunの開発者であるJarred Summer氏のツイート。 Standalone executables are coming</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/deno" data-gtm-click-label="entry-search-result-item-tag">deno</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/23/javascriptbunwebpack200puppeteer.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/23/javascriptbunwebpack200puppeteer.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/f68f9a5f018824967bcc92e64c8f8dfe807f62b3/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2023%2FFwGDTxbagAUlO0x.jpg" alt="JavaScriptランタイムのBun、インストール不要の実行ファイル生成が可能に。Webpackより200倍以上高速とするバンドラがβ版、Puppeteerにも対応" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/23/javascriptbun_10windows.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/23/javascriptbun_10windows.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F23%2Fjavascriptbun_10windows.html" alt="">JavaScriptランタイム「Bun 1.0」正式リリース。Windows版もまもなく登場へ </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/23/javascriptbun_10windows.html" class="js-keyboard-entry-page-openable" title="JavaScriptランタイム「Bun 1.0」正式リリース。Windows版もまもなく登場へ (99 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 99 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/09/11</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptエンジンにはSafariに搭載されているJavaScriptCoreを採用。データベース機能としてSQLiteも搭載し、npmパッケージマネージャとしての機能も備えています。 主な開発言語としてZigを採用し、メモリ管理などを含む低レイヤでの実装がBunの高速な動作を支えています。 Bunの高速性を強調 Bun 1.0の発表では高速性が強調されています。例えば下記はTypeScriptでの「hello world」の実行速度。</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/dev" data-gtm-click-label="entry-search-result-item-tag">dev</a></li> <li><a href="/q/software" data-gtm-click-label="entry-search-result-item-tag">software</a></li> <li><a href="/q/programming" data-gtm-click-label="entry-search-result-item-tag">programming</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/23/javascriptbun_10windows.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/23/javascriptbun_10windows.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/87ceea423af8d94f216b87ead447c6c3e291f581/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2023%2Fbun1001.png" alt="JavaScriptランタイム「Bun 1.0」正式リリース。Windows版もまもなく登場へ" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/24/denojavascripttypescriptjsrnodejsbuncloudflare.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/24/denojavascripttypescriptjsrnodejsbuncloudflare.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F24%2Fdenojavascripttypescriptjsrnodejsbuncloudflare.html" alt="">Deno、モダンなJavaScript/TypeScriptに最適化したパッケージレジストリ「JSR」パブリックベータ公開。Node.js、Bun、Cloudflareなどにも対応 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/24/denojavascripttypescriptjsrnodejsbuncloudflare.html" class="js-keyboard-entry-page-openable" title="Deno、モダンなJavaScript/TypeScriptに最適化したパッケージレジストリ「JSR」パブリックベータ公開。Node.js、Bun、Cloudflareなどにも対応 (84 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 84 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/03/04</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScript/TypeScriptランタイムの「Deno」を開発提供しているDeno Land Inc.は、モダンなJavaScriptおよびTypeScriptに最適化した新しいパッケージレジストリ「JSR」をパブリックベータとして公開しました。 現在、JavaScriptのパッケージレジストリは、Node.js用に構築され、GitHubが運営するnpm(Node Pacage Manager)が事実上の標準となっています。 参考:GitHubがnpmの買収を発表、JavaScriptのパッケージ管理サービス。将来的にはGitHubとnpmを統合へ npmにはさまざまな機能を備えたパッケージモジュールが大量に登録されており、この豊富なパッケージモジュールの存在がNode.jsの大きな利点となっています。そのため、現在ではDeno、Bun、Cloudflare Workersなど後</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/deno" data-gtm-click-label="entry-search-result-item-tag">deno</a></li> <li><a href="/q/typescript" data-gtm-click-label="entry-search-result-item-tag">typescript</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/publickey" data-gtm-click-label="entry-search-result-item-tag">publickey</a></li> <li><a href="/q/npm" data-gtm-click-label="entry-search-result-item-tag">npm</a></li> <li><a href="/q/Node.js" data-gtm-click-label="entry-search-result-item-tag">Node.js</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/24/denojavascripttypescriptjsrnodejsbuncloudflare.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/24/denojavascripttypescriptjsrnodejsbuncloudflare.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/8bd301f0e8567ad65aaaf58b98c220e94f9d3d6f/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2024%2Fjsr_pb01.png" alt="Deno、モダンなJavaScript/TypeScriptに最適化したパッケージレジストリ「JSR」パブリックベータ公開。Node.js、Bun、Cloudflareなどにも対応" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://fukabori.fm/episode/82"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://fukabori.fm/episode/82" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Ffukabori.fm%2Fepisode%2F82" alt="">82. Node.js、Deno、Bun (前編) w/ yosuke_furukawa | fukabori.fm </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/fukabori.fm/episode/82" class="js-keyboard-entry-page-openable" title="82. Node.js、Deno、Bun (前編) w/ yosuke_furukawa | fukabori.fm (74 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 74 users </a> </span> </li> <li> <a href="/site/fukabori.fm/" title="『fukabori.fm』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> fukabori.fm </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/10/10</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">MP3ファイルをダウンロード 内容紹介 yosuke_furukawaさんをゲストに、JavaScriptランタイム、Node.js、イベントループモデル、JavaScriptエンジン、Denoの生まれた経緯について語っていただいたエピソードです。 出演者 話したネタ denoの話 Bun first impressions Node.js、Deno、Bunとは何か? JavaScriptランタイムとは何か? サーバーサイドJavaScript expressを利用してWebサーバーを立てるコードは、Node.js以外でも動くのか? ECMAScript と ランタイム との関係は? TC39 Node.js はどんな経緯で生まれてきた? Rubyを書くタイミングと、JavaScriptを書くタイミングでのコンテキストスイッチ netv8 イベントループモデルとは何か? ブロッキング処理、</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/deno" data-gtm-click-label="entry-search-result-item-tag">deno</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/Node.js" data-gtm-click-label="entry-search-result-item-tag">Node.js</a></li> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/node" data-gtm-click-label="entry-search-result-item-tag">node</a></li> <li><a href="/q/Podcast" data-gtm-click-label="entry-search-result-item-tag">Podcast</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%82%B5%E3%83%BC%E3%83%90" data-gtm-click-label="entry-search-result-item-tag">サーバ</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://fukabori.fm/episode/82"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://fukabori.fm/episode/82" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/2baf464655c1dedef672c1a9719c0c2a4faeb509/height=288;version=1;width=512/https%3A%2F%2Ffukabori.fm%2Fimages%2Fogp.jpg" alt="82. Node.js、Deno、Bun (前編) w/ yosuke_furukawa | fukabori.fm" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry "> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://bun.sh/blog/bun-v1.0"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://bun.sh/blog/bun-v1.0" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fbun.sh%2Fblog%2Fbun-v1.0" alt="">Bun 1.0 | Bun Blog </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/bun.sh/blog/bun-v1.0" class="js-keyboard-entry-page-openable" title="Bun 1.0 | Bun Blog (72 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 72 users </a> </span> </li> <li> <a href="/site/bun.sh/" title="『bun.sh』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> bun.sh </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/08/22</span></li> </ul> </div> <div class="centerarticle-entry-contents "> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Bun is an all-in-one toolkitWe love JavaScript. It's mature, it moves fast, and its developer community is vibrant and passionate. It's awesome. However, since Node.js debuted 14 years ago, layers and layers of tooling have accumulated on top of each other. And like any system that grows and evolves without centralized planning, JavaScript tooling has become slow and complex. Why Bun existsBun's g</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/TypeScript" data-gtm-click-label="entry-search-result-item-tag">TypeScript</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/js" data-gtm-click-label="entry-search-result-item-tag">js</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://bun.sh/blog/bun-v1.0"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/22/javascriptbun9ovenci.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/22/javascriptbun9ovenci.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F22%2Fjavascriptbun9ovenci.html" alt="">JavaScriptランタイム「Bun」が約9億円を調達、「Oven」社を設立。ホスティングやCIサービスなど計画 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/22/javascriptbun9ovenci.html" class="js-keyboard-entry-page-openable" title="JavaScriptランタイム「Bun」が約9億円を調達、「Oven」社を設立。ホスティングやCIサービスなど計画 (63 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 63 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/08/29</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptランタイム「Bun」が約9億円を調達、「Oven」社を設立。ホスティングやCIサービスなど計画 7月に発表されるやいなや急速に注目を集めているJavaScriptランタイム「Bun」の開発者であるJarred Sumner氏が、Bunの開発とサービス提供などを目的とする企業「Oven」社の設立を発表しました。 Introducing Oven: the company behind Bun. Oven has raised $7m led by @buckymoore at Kleiner Perkins with participation from @rauchg @ycombinator and morehttps://t.co/HG2TUCQWbL — Oven (Bun) is hiring engineers (@oven_sh) August 24, 20</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9" data-gtm-click-label="entry-search-result-item-tag">サービス</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" data-gtm-click-label="entry-search-result-item-tag">開発</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/js" data-gtm-click-label="entry-search-result-item-tag">js</a></li> <li><a href="/q/software" data-gtm-click-label="entry-search-result-item-tag">software</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/22/javascriptbun9ovenci.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/22/javascriptbun9ovenci.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/eae93a9042eeeaf876ca4c3db0130e5f956b0d8f/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2022%2FAZaMsdzf.png" alt="JavaScriptランタイム「Bun」が約9億円を調達、「Oven」社を設立。ホスティングやCIサービスなど計画" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/yusukebe/articles/efa173ab4b9360"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/yusukebe/articles/efa173ab4b9360" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fyusukebe%2Farticles%2Fefa173ab4b9360" alt="">BunとHono </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/yusukebe/articles/efa173ab4b9360" class="js-keyboard-entry-page-openable" title="BunとHono (62 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 62 users </a> </span> </li> <li> <a href="/site/zenn.dev/yusukebe" title="『zenn.dev/yusukebe』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/yusukebe </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/09/11</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptのランタイム、Bunのv1.0がリリースされましたね 🎉 さて、僕がメインとなって開発しているHonoはBunと関係があるので、その話をします。 hono Express or KOA Bunのリリース時に使われた動画がかっこいいです。まるでApple。 この中で作者のJarredから肉まんのパスを受けるのがBunのDeveloper AdvocateでZodの作者のColinです。彼は「Web APIを作るためのフレームワーク」として以下のように言いました。 hono Express or KOA おおー。Express、Koaより前に来てていい感じですね。上記で貼ったリリースノートには順番が変わってますが、しっかりと名前が出てます。 Bun is tested against test suites of the most popular Node.js pack</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/cloudflare" data-gtm-click-label="entry-search-result-item-tag">cloudflare</a></li> <li><a href="/q/API" data-gtm-click-label="entry-search-result-item-tag">API</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/js" data-gtm-click-label="entry-search-result-item-tag">js</a></li> <li><a href="/q/article" data-gtm-click-label="entry-search-result-item-tag">article</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/yusukebe/articles/efa173ab4b9360"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/yusukebe/articles/efa173ab4b9360" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/589e05dc44263f590bc2ae9d20cfc3c049474443/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--potFXDGa--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_80%3ABun%2525E3%252581%2525A8Hono%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Ayusukebe%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2pIMWY1VlpnSFMwLUJwekhzZjRGYXN0R1ZYTlpfZFh1U2pwdWNMNGc9czI1MC1j%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="BunとHono" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry "> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://bun.sh/blog/commonjs-is-not-going-away"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://bun.sh/blog/commonjs-is-not-going-away" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fbun.sh%2Fblog%2Fcommonjs-is-not-going-away" alt="">CommonJS is not going away | Bun Blog </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/bun.sh/blog/commonjs-is-not-going-away" class="js-keyboard-entry-page-openable" title="CommonJS is not going away | Bun Blog (61 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 61 users </a> </span> </li> <li> <a href="/site/bun.sh/" title="『bun.sh』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> bun.sh </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/07/01</span></li> </ul> </div> <div class="centerarticle-entry-contents "> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">We're hiring C/C++ and Zig engineers to build the future of JavaScript! Join our team → Some may be surprised to see the recent release notes for Bun mention CommonJS support. After all, CommonJS is a legacy module system, and the future of JavaScript is ES Modules (ESM), right? As a "forward-thinking" "next-gen" runtime, why would Bun put so much effort into improving CommonJS support? The latest</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/module" data-gtm-click-label="entry-search-result-item-tag">module</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/CommonJS" data-gtm-click-label="entry-search-result-item-tag">CommonJS</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://bun.sh/blog/commonjs-is-not-going-away"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://azukiazusa.dev/blog/bun-cross-platform-shell-script/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://azukiazusa.dev/blog/bun-cross-platform-shell-script/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fazukiazusa.dev%2Fblog%2Fbun-cross-platform-shell-script%2F" alt="">Bun でクロスプラットフォームなシェルスクリプト </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/azukiazusa.dev/blog/bun-cross-platform-shell-script/" class="js-keyboard-entry-page-openable" title="Bun でクロスプラットフォームなシェルスクリプト (60 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 60 users </a> </span> </li> <li> <a href="/site/azukiazusa.dev/" title="『azukiazusa.dev』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> azukiazusa.dev </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/01/20</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Bun でクロスプラットフォームなシェルスクリプト 2024.01.20 Bun の `$` を使うと、クロスプラットフォームなシェルスクリプト(Bun Shell)を書くことができます。Bun Shell は macOS (zsh)、Linux (bash)、および Windows (cmd) と OS の違いを気にせずにシェルスクリプトを書ける、JavaScript オブジェクトとのやりとりが可能であることが特徴です。</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/%E3%82%B7%E3%82%A7%E3%83%AB" data-gtm-click-label="entry-search-result-item-tag">シェル</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/article" data-gtm-click-label="entry-search-result-item-tag">article</a></li> <li><a href="/q/linux" data-gtm-click-label="entry-search-result-item-tag">linux</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://azukiazusa.dev/blog/bun-cross-platform-shell-script/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://azukiazusa.dev/blog/bun-cross-platform-shell-script/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/e50020cc9d9c6a1f24675574ed3aa1f5e2ae94e2/height=288;version=1;width=512/https%3A%2F%2Fazukiazusa.dev%2Fblog%2Fogp%2Fbun-cross-platform-shell-script.png" alt="Bun でクロスプラットフォームなシェルスクリプト" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/nakasyou/articles/you_dont_need_node"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/nakasyou/articles/you_dont_need_node" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fnakasyou%2Farticles%2Fyou_dont_need_node" alt="">You don't need Node.js </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/nakasyou/articles/you_dont_need_node" class="js-keyboard-entry-page-openable" title="You don't need Node.js (56 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 56 users </a> </span> </li> <li> <a href="/site/zenn.dev/nakasyou" title="『zenn.dev/nakasyou』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/nakasyou </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/04/03</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Node.jsはいらない場合がある、むしろいらない場合の方が多いかもしれない、 そしてDenoとBunを使い分けて代替する方法を説明するという記事です。 Post Node.js ランタイムの登場 Node.js のあとにできたランタイムがいくつも登場しています。 Deno Bun WinterJS LLRT この中でも、人気であるDenoとBunを中心に考えていきます。 DenoやBunに変えるメリット これがなければNode.jsから変える必要はないと思います。 私は、以下の3つが、2ランタイムに共通して言える大きなメリットだと思います: ネイティブTypeScriptサポート 高速 Web標準 ネイティブTypeScriptサポート 現在、JavaScriptを記述するときは、TypeScriptを利用することが多いと思います。 Node.jsでTypeScriptを使うとき。tsc</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/deno" data-gtm-click-label="entry-search-result-item-tag">deno</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/node" data-gtm-click-label="entry-search-result-item-tag">node</a></li> <li><a href="/q/TypeScript" data-gtm-click-label="entry-search-result-item-tag">TypeScript</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/article" data-gtm-click-label="entry-search-result-item-tag">article</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/nakasyou/articles/you_dont_need_node"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/nakasyou/articles/you_dont_need_node" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/d948a2e79d681886b6a1ac44ee3f6cf2918040ba/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--axVSGDjC--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_76%3AYou%252520don%252527t%252520need%252520Node.js%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Anakasyou%252520%25252F%252520Shotaro...%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzI3NTAyNDNlNjAuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="You don't need Node.js" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://tech.techtouch.jp/entry/state-of-js-runtime-2022-winter"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://tech.techtouch.jp/entry/state-of-js-runtime-2022-winter" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Ftech.techtouch.jp%2Fentry%2Fstate-of-js-runtime-2022-winter" alt="">JavaScriptランタイム事情 2022冬 - Techtouch Developers Blog </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/tech.techtouch.jp/entry/state-of-js-runtime-2022-winter" class="js-keyboard-entry-page-openable" title="JavaScriptランタイム事情 2022冬 - Techtouch Developers Blog (55 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 55 users </a> </span> </li> <li> <a href="/site/tech.techtouch.jp/" title="『tech.techtouch.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> tech.techtouch.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/12/18</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">テックタッチアドベントカレンダー 18 日目担当の yokochin です。 今年になって JavaScript の新しいランタイムである Bun をよく目にするようになりました。 Node.js、Deno に続く JavaScript ランタイムの新勢力となるわけですが、それぞれどのように違うのか、それぞれが生まれた背景やコンセプトから理解していこう!というのがこの記事の趣旨です。 Node.js 開発の背景 余談:ブロッキングとSSR Node.js の後悔と Deno の登場 Deno のモジュールシステム そのほかの特徴 Bun の登場 Bun のパフォーマンス そのほかの特徴 JS ランタイムの互換性 Deno の Node.js 互換 Bun の Node.js 互換 終わりに Node.js 開発の背景 Node.js は 2009 年にリリースされ、現在最も広く使われている</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/JavaScript%E3%83%A9%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0" data-gtm-click-label="entry-search-result-item-tag">JavaScriptランタイム</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" data-gtm-click-label="entry-search-result-item-tag">開発</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://tech.techtouch.jp/entry/state-of-js-runtime-2022-winter"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://tech.techtouch.jp/entry/state-of-js-runtime-2022-winter" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/5270ee1534f6b692f281e96185f4d1323ff062f6/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ft%2Ftechtouch%2F20221215%2F20221215204506.png" alt="JavaScriptランタイム事情 2022冬 - Techtouch Developers Blog" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/22/javascriptbun_v03031npm.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/22/javascriptbun_v03031npm.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F22%2Fjavascriptbun_v03031npm.html" alt="">JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/22/javascriptbun_v03031npm.html" class="js-keyboard-entry-page-openable" title="JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど (54 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 54 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/12/13</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど サーバサイドで実行可能なJavaScriptランタイム「Bun」の最新バージョン「Bun v0.3.0」がリリースされました。 BunはJavaScriptランタイムとバンドラ、トランスパイラ、タスクランナーなどの機能が最初から統合されているソフトウェアです。 JavaScriptエンジンにはSafariに搭載されているJavaScriptCoreを採用。Node.jsの主要なAPIやNode.jsのモジュール依存関係解決アルゴリズムも実装し、内蔵するnpmクライアントにより高速にnpmパッケージを読み込んで利用できるなど、Bun単体でさまざまな機能が統合され、便利に使えます。 さらにTypeScript/JSXトランスパイラによってTypeScriptファ</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/22/javascriptbun_v03031npm.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/22/javascriptbun_v03031npm.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/4df0dd3616c50dd2343873a61e68b2726fb117fa/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2022%2FcHNB_RPV.jpg" alt="JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/23/cloudflare_workersnodejs_apibundenonodejs_apijavascript.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/23/cloudflare_workersnodejs_apibundenonodejs_apijavascript.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F23%2Fcloudflare_workersnodejs_apibundenonodejs_apijavascript.html" alt="">Cloudflare WorkersがNode.js API互換の提供を発表。Bun、Denoなどに続く対応により、Node.js APIはサーバサイドJavaScriptの事実上の標準になるか </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/23/cloudflare_workersnodejs_apibundenonodejs_apijavascript.html" class="js-keyboard-entry-page-openable" title="Cloudflare WorkersがNode.js API互換の提供を発表。Bun、Denoなどに続く対応により、Node.js APIはサーバサイドJavaScriptの事実上の標準になるか (54 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 54 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/04/11</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Cloudflare WorkersがNode.js API互換の提供を発表。Bun、Denoなどに続く対応により、Node.js APIはサーバサイドJavaScriptの事実上の標準になるか Cloudflareは、エッジでJavaScriptを実行できるサービス「Cloudflare Workers」において、Node.jsのAPI互換機能を提供すると発表しました。 node.js APIs have officially landed in Cloudflare Workers — no polyfills required. We've added AsyncLocalstorage, EventEmitter, Buffer, assert and util, with more on the way soon.https://t.co/8CkPZkS3Yb — Cloudfl</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/Cloudflare" data-gtm-click-label="entry-search-result-item-tag">Cloudflare</a></li> <li><a href="/q/Node.js" data-gtm-click-label="entry-search-result-item-tag">Node.js</a></li> <li><a href="/q/Node" data-gtm-click-label="entry-search-result-item-tag">Node</a></li> <li><a href="/q/JavaScript" data-gtm-click-label="entry-search-result-item-tag">JavaScript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/software" data-gtm-click-label="entry-search-result-item-tag">software</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/23/cloudflare_workersnodejs_apibundenonodejs_apijavascript.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/23/cloudflare_workersnodejs_apibundenonodejs_apijavascript.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/841c21cbbdd44e2695dbd4e63df0989695738c6b/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2023%2FVYWUvLE8.jpg" alt="Cloudflare WorkersがNode.js API互換の提供を発表。Bun、Denoなどに続く対応により、Node.js APIはサーバサイドJavaScriptの事実上の標準になるか" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://azukiazusa.dev/blog/bun-workspace/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://azukiazusa.dev/blog/bun-workspace/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fazukiazusa.dev%2Fblog%2Fbun-workspace%2F" alt="">Bun workspace で始めるモノレポ生活 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/azukiazusa.dev/blog/bun-workspace/" class="js-keyboard-entry-page-openable" title="Bun workspace で始めるモノレポ生活 (54 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 54 users </a> </span> </li> <li> <a href="/site/azukiazusa.dev/" title="『azukiazusa.dev』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> azukiazusa.dev </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/09/16</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Bun workspace で始めるモノレポ生活 2023.09.15 Bun では `package.json` の `workspaces` を使用することでモノレポの管理が可能です。この記事では Bun によるモノレポを試してみます。 Bun はパッケージマネージャーとしても利用できるので、npm の workspaces によるモノレポ管理も可能です。モノレポとは、複数のパッケージを 1 つのリポジトリで管理することです。モノレポを利用することで、同レポジトリ内のパッケージを互いに参照したり、node_modules をシェアしてディスク容量を節約するといったメリットがあります。 この記事では、Bun workspace を利用してモノレポを管理する方法を紹介します。 Bun workspace の使い方 workspace ではディレクトリのルートレベルに、各パッケージを管理する</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/JavaScript%E3%83%A9%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0" data-gtm-click-label="entry-search-result-item-tag">JavaScriptランタイム</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/JavaScript" data-gtm-click-label="entry-search-result-item-tag">JavaScript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://azukiazusa.dev/blog/bun-workspace/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://azukiazusa.dev/blog/bun-workspace/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/7ba17398a75e276cb4a3a4886ab2e65f558ee01b/height=288;version=1;width=512/https%3A%2F%2Fazukiazusa.dev%2Fblog%2Fogp%2Fbun-workspace.png" alt="Bun workspace で始めるモノレポ生活" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://gihyo.jp/article/2024/08/misskey-15"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://gihyo.jp/article/2024/08/misskey-15" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fgihyo.jp%2Farticle%2F2024%2F08%2Fmisskey-15" alt="">BunはNodeより速いのか? Misskeyで検証 | gihyo.jp </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/gihyo.jp/article/2024/08/misskey-15" class="js-keyboard-entry-page-openable" title="BunはNodeより速いのか? Misskeyで検証 | gihyo.jp (52 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 52 users </a> </span> </li> <li> <a href="/site/gihyo.jp/" title="『gihyo.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> gihyo.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/08/19</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">本連載では分散型マイクロブログ用ソフトウェアMisskeyの開発に関する紹介と、関連するWeb技術について解説を行っています。 今回はNode.js互換のJavaScriptランタイム、Bunのパフォーマンスについて、Misskeyのコードベースを用いて検証を行います。 Bunとは Bunは、Node.js(以下Node)互換である後発のJavaScriptランタイムです。 JavaScriptエンジンにNodeで採用されているV8ではなくJavaScriptCoreを採用しているほか、TypeScriptを事前コンパイルなしに実行することもできます。 肉まんのようなマスコットキャラクターが特徴です。 モチベーション そんなBunの公式サイトではNodeよりも大幅に性能上のアドバンテージがあるように紹介されていますが、こうした競合ソフトウェアとの一方的な比較は得てして限られた条件での有利な</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/Misskey" data-gtm-click-label="entry-search-result-item-tag">Misskey</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF" data-gtm-click-label="entry-search-result-item-tag">ベンチマーク</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/tech" data-gtm-click-label="entry-search-result-item-tag">tech</a></li> <li><a href="/q/Development" data-gtm-click-label="entry-search-result-item-tag">Development</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" data-gtm-click-label="entry-search-result-item-tag">開発</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://gihyo.jp/article/2024/08/misskey-15"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://gihyo.jp/article/2024/08/misskey-15" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/0e1a56f5f0a68da81e43ac14ba541164a7f6d84d/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2FICON%2F2023%2F2030_misskey.png" alt="BunはNodeより速いのか? Misskeyで検証 | gihyo.jp" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/levtech/articles/95ddf5488d74f1"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/levtech/articles/95ddf5488d74f1" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Flevtech%2Farticles%2F95ddf5488d74f1" alt="">Next.js + Hono + AWS でイベント駆動なプロフィール交換アプリを開発! </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/levtech/articles/95ddf5488d74f1" class="js-keyboard-entry-page-openable" title="Next.js + Hono + AWS でイベント駆動なプロフィール交換アプリを開発! (49 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 49 users </a> </span> </li> <li> <a href="/site/zenn.dev/levtech" title="『zenn.dev/levtech』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/levtech </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/02/02</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">TL;DR スマホでQRコードを読み込むプロフィール交換アプリを開発した。 イベントソーシングだったり Hono だったり、気になる技術を試せた。 アプリのレスポンスが速く、懇親会も盛り上がったのでよかった! はじめに レバテック開発部で基盤システムグループに所属している瀬尾です。 普段はマイクロサービスのつらみを味わったりしています。 昨年末に弊社で大規模な懇親会があり、そこでの交流を増やす目的として、互いの QR コードを読み取りプロフィールを交換するアプリを作りました。 この記事では、そのアプリをどんな技術でどのように開発していったかをご紹介しようと思います! 技術スタック 言語 Typescript Go(Lambdaで使用) フロントエンド Node.js Next.js, TailwindCSS バックエンド Bun Hono, Prisma イベントソーシング インフラ AW</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/hono" data-gtm-click-label="entry-search-result-item-tag">hono</a></li> <li><a href="/q/nextjs" data-gtm-click-label="entry-search-result-item-tag">nextjs</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/aws" data-gtm-click-label="entry-search-result-item-tag">aws</a></li> <li><a href="/q/%E3%82%A2%E3%83%97%E3%83%AA" data-gtm-click-label="entry-search-result-item-tag">アプリ</a></li> <li><a href="/q/%E9%96%8B%E7%99%BA" data-gtm-click-label="entry-search-result-item-tag">開発</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/levtech/articles/95ddf5488d74f1"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/levtech/articles/95ddf5488d74f1" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/ad0c8b15c9ff5902eee578421b507876bad90dab/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--B1bnHdeo--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3ANext.js%252520%25252B%252520Hono%252520%25252B%252520AWS%252520%2525E3%252581%2525A7%2525E3%252582%2525A4%2525E3%252583%252599%2525E3%252583%2525B3%2525E3%252583%252588%2525E9%2525A7%252586%2525E5%25258B%252595%2525E3%252581%2525AA%2525E3%252583%252597%2525E3%252583%2525AD%2525E3%252583%252595%2525E3%252582%2525A3%2525E3%252583%2525BC%2525E3%252583%2525AB%2525E4%2525BA%2525A4%2525E6%25258F%25259B%2525E3%252582%2525A2%2525E3%252583%252597%2525E3%252583%2525AA%2525E3%252582%252592%2525E9%252596%25258B%2525E7%252599%2525BA%2525EF%2525BC%252581%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_34%3Aseoink%252Cx_220%252Cy_108%2Fbo_3px_solid_rgb%3Ad6e3ed%252Cg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzY1YzcxZDY5NDkuanBlZw%3D%3D%252Cr_20%252Cw_90%252Cx_92%252Cy_102%2Fg_south_west%252Ch_34%252Cl_default%3Aog-publication-pro-mark-xcosax%252Cw_34%252Cx_217%252Cy_158%2Fco_rgb%3A6e7b85%252Cg_south_west%252Cl_text%3Anotosansjp-medium.otf_30%3A%2525E3%252583%2525AC%2525E3%252583%252590%2525E3%252583%252586%2525E3%252583%252583%2525E3%252582%2525AF%2525E9%252596%25258B%2525E7%252599%2525BA%2525E9%252583%2525A8%252Cx_255%252Cy_160%2Fbo_4px_solid_white%252Cg_south_west%252Ch_50%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzhiODRiZWE5YzYuanBlZw%3D%3D%252Cr_max%252Cw_50%252Cx_139%252Cy_84%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="Next.js + Hono + AWS でイベント駆動なプロフィール交換アプリを開発!" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/23/javascriptbun_v05mysqlpostgresqlworkspacesbundns.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/23/javascriptbun_v05mysqlpostgresqlworkspacesbundns.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F23%2Fjavascriptbun_v05mysqlpostgresqlworkspacesbundns.html" alt="">JavaScriptランタイム「Bun v0.5」登場。MySQLやPostgreSQLのデータベース接続対応、新機能「Workspaces」、Bun.dnsなど搭載 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/23/javascriptbun_v05mysqlpostgresqlworkspacesbundns.html" class="js-keyboard-entry-page-openable" title="JavaScriptランタイム「Bun v0.5」登場。MySQLやPostgreSQLのデータベース接続対応、新機能「Workspaces」、Bun.dnsなど搭載 (45 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 45 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/01/23</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptランタイム「Bun v0.5」登場。MySQLやPostgreSQLのデータベース接続対応、新機能「Workspaces」、Bun.dnsなど搭載 サーバサイドで実行可能なJavaScriptランタイム「Bun」の最新バージョン「Bun v0.5」がリリースされました。 Introducing Bun v0.5 - bun install workspaces && bun install bugfixes - postgres, mysql, redis & more DB-related npm pkgs work in bun now - Bun.dns && some of node:dns, node:net, & node:tls - new WebSocket supports headers - HTTP client proxy supporthttp</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/mysql" data-gtm-click-label="entry-search-result-item-tag">mysql</a></li> <li><a href="/q/software" data-gtm-click-label="entry-search-result-item-tag">software</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/23/javascriptbun_v05mysqlpostgresqlworkspacesbundns.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/23/javascriptbun_v05mysqlpostgresqlworkspacesbundns.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/785068491aca43cf4e2e9e2d05f6e1424dcaa4d4/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2023%2FbZRE0JDQ.png" alt="JavaScriptランタイム「Bun v0.5」登場。MySQLやPostgreSQLのデータベース接続対応、新機能「Workspaces」、Bun.dnsなど搭載" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/24/javascriptbuncjavascript.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/24/javascriptbuncjavascript.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F24%2Fjavascriptbuncjavascript.html" alt="">JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/24/javascriptbuncjavascript.html" class="js-keyboard-entry-page-openable" title="JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート (43 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 43 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/10/08</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート JavaScriptランタイムのBunは、C言語のコンパイルとJavaScriptプログラムからの実行をサポートすると発表しました。 In Bun v1.1.28, we added support for compiling and running C from JavaScripthttps://t.co/eoClllphwj pic.twitter.com/YwCW7Uc7CT — Bun (@bunjavascript) September 18, 2024 JavaScriptを用いてアプリケーション開発を行う際に、システムの持つ機能を呼び出したい場合にはNode.jsやBunに実装されたN-API、もしくはJavaScriptエンジンV8のAPIをC言語経由で呼び出</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/C" data-gtm-click-label="entry-search-result-item-tag">C</a></li> <li><a href="/q/%E8%A8%80%E8%AA%9E" data-gtm-click-label="entry-search-result-item-tag">言語</a></li> <li><a href="/q/software" data-gtm-click-label="entry-search-result-item-tag">software</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/24/javascriptbuncjavascript.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/24/javascriptbuncjavascript.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/f0f9927ffbff8734cbed504b46449715a273bf79/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2024%2Fbun-js-c01.png" alt="JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://uga-box.hatenablog.com/entry/2022/07/29/000000"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://uga-box.hatenablog.com/entry/2022/07/29/000000" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fuga-box.hatenablog.com%2Fentry%2F2022%2F07%2F29%2F000000" alt="">【Bun】BunとNode.jsの違いのメモ - UGA Boxxx </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/uga-box.hatenablog.com/entry/2022/07/29/000000" class="js-keyboard-entry-page-openable" title="【Bun】BunとNode.jsの違いのメモ - UGA Boxxx (42 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 42 users </a> </span> </li> <li> <a href="/site/uga-box.hatenablog.com/" title="『uga-box.hatenablog.com』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> uga-box.hatenablog.com </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/11/16</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">以前、Bunについてざっくり調べたことがある uga-box.hatenablog.com この時からBunについて、特にNode.jsとの違いについて、知る機会があったのでメモ (2022/9/5 追記)ソース元はfurukawaさんがNode学園40限目で話された内容 speakerdeck.com Node.jsの構成要素の一部 Standard Libraries HTTP、File systemとか n-api C++とかCを呼び出すネイティブモジュールの抽象化ライブラリ V8 JavaScript エンジン http-parser HTTP1.1用のパーサー OpenSSL HTTPSとかTLSとかの暗号化周りのライブラリ zlib 圧縮とか解凍とか ng-http2 HTTP2用のライブラリ ng-tcp QUIC用のライブラリ libuv OSによって異なるシステムコールの</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/Windows" data-gtm-click-label="entry-search-result-item-tag">Windows</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://uga-box.hatenablog.com/entry/2022/07/29/000000"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://uga-box.hatenablog.com/entry/2022/07/29/000000" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/faea511b926fe68bc33372d6c395a38f4cbc48bd/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F26006613495052178%2F4207112889902407549%2F1669214822" alt="【Bun】BunとNode.jsの違いのメモ - UGA Boxxx" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://efcl.info/2023/09/09/bluenotiondb/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://efcl.info/2023/09/09/bluenotiondb/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fefcl.info%2F2023%2F09%2F09%2Fbluenotiondb%2F" alt="">Bluesky/GitHub/Calendar/RSSをNotionに同期するbluenotiondbを作った </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/efcl.info/2023/09/09/bluenotiondb/" class="js-keyboard-entry-page-openable" title="Bluesky/GitHub/Calendar/RSSをNotionに同期するbluenotiondbを作った (42 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 42 users </a> </span> </li> <li> <a href="/site/efcl.info/" title="『efcl.info』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> efcl.info </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/09/09</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Notionには同期データベースとしてGitHubやJiraなどを同期できるDBがありますが、任意のサービスには対応していません。 もっと色々なサービスと同期するNotionのデータベースが欲しかったので、bluenotiondbというツールを作りました。 azu/bluenotiondb: Sync Bluesky/GitHub/Calendar/RSS to Notion. bluenotiondbは、色々なサービスからデータを取得してそのデータをNotionのデータベースに追加するツールです。 現状では次のサービスに対応しています。 Bluesky Pull Posts from Bluesky and push to Notion GitHub Activity Pull events of GitHub user and push to Notion Open/Close/Com</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/Notion" data-gtm-click-label="entry-search-result-item-tag">Notion</a></li> <li><a href="/q/GitHub" data-gtm-click-label="entry-search-result-item-tag">GitHub</a></li> <li><a href="/q/Git" data-gtm-click-label="entry-search-result-item-tag">Git</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/db" data-gtm-click-label="entry-search-result-item-tag">db</a></li> <li><a href="/q/Tools" data-gtm-click-label="entry-search-result-item-tag">Tools</a></li> <li><a href="/q/memo" data-gtm-click-label="entry-search-result-item-tag">memo</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://efcl.info/2023/09/09/bluenotiondb/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://efcl.info/2023/09/09/bluenotiondb/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b26f7dc8f9e783316f720174980e93c627438d74/height=288;version=1;width=512/https%3A%2F%2Fefcl.info%2Fpublic%2Ffavicon.png" alt="Bluesky/GitHub/Calendar/RSSをNotionに同期するbluenotiondbを作った" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://speakerdeck.com/yusukebe/hono-ultrafast-web-framework-for-cloudflare-workers-deno-bun-and-node-dot-js"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://speakerdeck.com/yusukebe/hono-ultrafast-web-framework-for-cloudflare-workers-deno-bun-and-node-dot-js" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fspeakerdeck.com%2Fyusukebe%2Fhono-ultrafast-web-framework-for-cloudflare-workers-deno-bun-and-node-dot-js" alt="">Hono - Ultrafast web framework for Cloudflare Workers, Deno, Bun, and Node.js </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/speakerdeck.com/yusukebe/hono-ultrafast-web-framework-for-cloudflare-workers-deno-bun-and-node-dot-js" class="js-keyboard-entry-page-openable" title="Hono - Ultrafast web framework for Cloudflare Workers, Deno, Bun, and Node.js (41 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 41 users </a> </span> </li> <li> <a href="/site/speakerdeck.com/yusukebe" title="『speakerdeck.com/yusukebe』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> speakerdeck.com/yusukebe </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/11/26</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Yusuke Wada 2022.11.26 JSConf JP</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/cloudflare" data-gtm-click-label="entry-search-result-item-tag">cloudflare</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://speakerdeck.com/yusukebe/hono-ultrafast-web-framework-for-cloudflare-workers-deno-bun-and-node-dot-js"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://speakerdeck.com/yusukebe/hono-ultrafast-web-framework-for-cloudflare-workers-deno-bun-and-node-dot-js" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/7fa909344c57d7d527e12a8aa099a24259f6916a/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F6c3d3556e3a14417802209b9ff2a4de8%2Fslide_0.jpg%3F23564160" alt="Hono - Ultrafast web framework for Cloudflare Workers, Deno, Bun, and Node.js" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://efcl.info/2024/10/06/bun-single-file-executable-binary/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://efcl.info/2024/10/06/bun-single-file-executable-binary/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fefcl.info%2F2024%2F10%2F06%2Fbun-single-file-executable-binary%2F" alt="">BunでNode.jsのツールをSingle-file executable binaryにしてバイナリを配布する </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/efcl.info/2024/10/06/bun-single-file-executable-binary/" class="js-keyboard-entry-page-openable" title="BunでNode.jsのツールをSingle-file executable binaryにしてバイナリを配布する (40 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 40 users </a> </span> </li> <li> <a href="/site/efcl.info/" title="『efcl.info』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> efcl.info </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/10/06</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Secretlint v8.3で、単体のバイナリファイルとしてsecretlintコマンドを配布するようにしました。 Release v8.3.3 · secretlint/secretlint どういうことができるようになるかというか、Node.jsをインストールしなくてもsecretlintコマンドを使えるようになります。 次のようにCurlでダウンロードして実行するだけで、機密情報の検出ができるようになります。 #!/usr/bin/env bash set -euo pipefail SECRETLINT_VERSION="8.3.3" # secretlintのバージョン ARCH=$(uname -m) OS=$(uname -s | tr '[:upper:]' '[:lower:]') # Map architecture to the expected format ca</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/node" data-gtm-click-label="entry-search-result-item-tag">node</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/article" data-gtm-click-label="entry-search-result-item-tag">article</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://efcl.info/2024/10/06/bun-single-file-executable-binary/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://efcl.info/2024/10/06/bun-single-file-executable-binary/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b26f7dc8f9e783316f720174980e93c627438d74/height=288;version=1;width=512/https%3A%2F%2Fefcl.info%2Fpublic%2Ffavicon.png" alt="BunでNode.jsのツールをSingle-file executable binaryにしてバイナリを配布する" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry "> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://bun.sh/blog/the-bun-shell"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://bun.sh/blog/the-bun-shell" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fbun.sh%2Fblog%2Fthe-bun-shell" alt="">The Bun Shell | Bun Blog </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/bun.sh/blog/the-bun-shell" class="js-keyboard-entry-page-openable" title="The Bun Shell | Bun Blog (39 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 39 users </a> </span> </li> <li> <a href="/site/bun.sh/" title="『bun.sh』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> bun.sh </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/01/20</span></li> </ul> </div> <div class="centerarticle-entry-contents "> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">JavaScript is the world's most popular scripting language. So why is it hard to run shell scripts in JavaScript? import { spawnSync } from "child_process"; // this is a lot more work than it could be const { status, stdout, stderr } = spawnSync("ls", ["-l", "*.js"], { encoding: "utf8", });</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/shell" data-gtm-click-label="entry-search-result-item-tag">shell</a></li> <li><a href="/q/JavaScript" data-gtm-click-label="entry-search-result-item-tag">JavaScript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/article" data-gtm-click-label="entry-search-result-item-tag">article</a></li> <li><a href="/q/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0" data-gtm-click-label="entry-search-result-item-tag">プログラミング</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://bun.sh/blog/the-bun-shell"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry "> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://moonrepo.dev/proto"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://moonrepo.dev/proto" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fmoonrepo.dev%2Fproto" alt="">proto - A multi-language version manager | moonrepo </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/moonrepo.dev/proto" class="js-keyboard-entry-page-openable" title="proto - A multi-language version manager | moonrepo (37 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 37 users </a> </span> </li> <li> <a href="/site/moonrepo.dev/" title="『moonrepo.dev』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> moonrepo.dev </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/03/10</span></li> </ul> </div> <div class="centerarticle-entry-contents "> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">A version manager for all your favorite languages and tools. A unified toolchain. Supports Bun, Deno, Node (npm, pnpm, yarn), Rust, Go, and more.</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/deno" data-gtm-click-label="entry-search-result-item-tag">deno</a></li> <li><a href="/q/node" data-gtm-click-label="entry-search-result-item-tag">node</a></li> <li><a href="/q/golang" data-gtm-click-label="entry-search-result-item-tag">golang</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> <li><a href="/q/language" data-gtm-click-label="entry-search-result-item-tag">language</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://moonrepo.dev/proto"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://efcl.info/2023/03/24/ni/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://efcl.info/2023/03/24/ni/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fefcl.info%2F2023%2F03%2F24%2Fni%2F" alt="">npm/yarn/pnpm/bunを同じコマンドで扱える ni のzsh実装を書いた </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/efcl.info/2023/03/24/ni/" class="js-keyboard-entry-page-openable" title="npm/yarn/pnpm/bunを同じコマンドで扱える ni のzsh実装を書いた (34 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 34 users </a> </span> </li> <li> <a href="/site/efcl.info/" title="『efcl.info』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> efcl.info </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/03/24</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">niという npm/yarn/pnpm/bun を同じコマンドでインストール/アンストールコマンドを実行できるツールがあります。 antfu/ni: 💡 Use the right package manager 仕組み的には、各パッケージのロックファイルやCorepackで決められたpackageManagerフィールドの値から、どのパッケージマネージャを使うかを判断しています。 たとえば、package-lock.jsonがあるプロジェクトなら npm を使ってるので、niコマンドは npm のコマンドを実行します。 また、packageManagerフィールドがyarn@<version>になっている場合は、niコマンドは yarn コマンドを実行します。 なぜこういうツールが必要になるかというと、npm や yarn などのパッケージマネージャは、それぞれのパッケージマネージャの</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/npm" data-gtm-click-label="entry-search-result-item-tag">npm</a></li> <li><a href="/q/pnpm" data-gtm-click-label="entry-search-result-item-tag">pnpm</a></li> <li><a href="/q/node.js" data-gtm-click-label="entry-search-result-item-tag">node.js</a></li> <li><a href="/q/yarn" data-gtm-click-label="entry-search-result-item-tag">yarn</a></li> <li><a href="/q/article" data-gtm-click-label="entry-search-result-item-tag">article</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://efcl.info/2023/03/24/ni/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://efcl.info/2023/03/24/ni/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b26f7dc8f9e783316f720174980e93c627438d74/height=288;version=1;width=512/https%3A%2F%2Fefcl.info%2Fpublic%2Ffavicon.png" alt="npm/yarn/pnpm/bunを同じコマンドで扱える ni のzsh実装を書いた" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://speakerdeck.com/yusukebe/denodemobundemoiikara-zui-su-womu-zhi-su"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://speakerdeck.com/yusukebe/denodemobundemoiikara-zui-su-womu-zhi-su" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fspeakerdeck.com%2Fyusukebe%2Fdenodemobundemoiikara-zui-su-womu-zhi-su" alt="">DenoでもBunでもいいから 最速を目指す </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/speakerdeck.com/yusukebe/denodemobundemoiikara-zui-su-womu-zhi-su" class="js-keyboard-entry-page-openable" title="DenoでもBunでもいいから 最速を目指す (34 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 34 users </a> </span> </li> <li> <a href="/site/speakerdeck.com/yusukebe" title="『speakerdeck.com/yusukebe』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> speakerdeck.com/yusukebe </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2022/09/05</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Yusuke Wada a.k.a yusukebe 2022/09/05 Node学園 40時限目</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://speakerdeck.com/yusukebe/denodemobundemoiikara-zui-su-womu-zhi-su"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://speakerdeck.com/yusukebe/denodemobundemoiikara-zui-su-womu-zhi-su" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/2e455328f1e5aa9e482e0077542b17d39cfcbf07/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fba005aeb95fe47798b5c6542d6a6d32b%2Fslide_0.jpg%3F22554017" alt="DenoでもBunでもいいから 最速を目指す" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://www.publickey1.jp/blog/24/bun_115linuxwindows.html"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://www.publickey1.jp/blog/24/bun_115linuxwindows.html" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F24%2Fbun_115linuxwindows.html" alt="">Bun 1.1.5でクロスコンパイルが可能に。LinuxでWindows対応の実行ファイルなどビルド </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.publickey1.jp/blog/24/bun_115linuxwindows.html" class="js-keyboard-entry-page-openable" title="Bun 1.1.5でクロスコンパイルが可能に。LinuxでWindows対応の実行ファイルなどビルド (33 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 33 users </a> </span> </li> <li> <a href="/site/www.publickey1.jp/" title="『www.publickey1.jp』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> www.publickey1.jp </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2024/05/01</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">サーバサイドで実行可能なJavaScriptランタイム「Bun」は、2023年5月に登場したバージョン0.6で、単独の実行ファイルを生成できる「bun build」機能が搭載されました。 単独の実行ファイルは、Bunをインストールすることなく、そのまま実行可能です。 そして4月26日にリリースされたBun 1.1.5では、このBun buildの機能にクロスコンパイルの機能が追加されました。 Bun v1.1.5 - Fixes 64 bugs (addressing 101) - Cross-compile standalone JS/TS binaries - https://t.co/8hd5RVXz0H is bun's new crash reporter - package.json won't error on comments & trailing commas - Nod</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/Bun" data-gtm-click-label="entry-search-result-item-tag">Bun</a></li> <li><a href="/q/TypeScript" data-gtm-click-label="entry-search-result-item-tag">TypeScript</a></li> <li><a href="/q/%E6%9C%AA%E5%88%86%E9%A1%9E" data-gtm-click-label="entry-search-result-item-tag">未分類</a></li> <li><a href="/q/techfeed" data-gtm-click-label="entry-search-result-item-tag">techfeed</a></li> <li><a href="/q/software" data-gtm-click-label="entry-search-result-item-tag">software</a></li> <li><a href="/q/Linux" data-gtm-click-label="entry-search-result-item-tag">Linux</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://www.publickey1.jp/blog/24/bun_115linuxwindows.html"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://www.publickey1.jp/blog/24/bun_115linuxwindows.html" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b1f4be7a0096d41205117e3c3988c62d220c783d/height=288;version=1;width=512/https%3A%2F%2Fwww.publickey1.jp%2F2024%2F5VmCpiQQ.jpg" alt="Bun 1.1.5でクロスコンパイルが可能に。LinuxでWindows対応の実行ファイルなどビルド" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://zenn.dev/watany/articles/e21a54cf3d56d8"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/watany/articles/e21a54cf3d56d8" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fwatany%2Farticles%2Fe21a54cf3d56d8" alt="">bun.lockbのVersion管理をGitでどうやる?問題 </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/watany/articles/e21a54cf3d56d8" class="js-keyboard-entry-page-openable" title="bun.lockbのVersion管理をGitでどうやる?問題 (32 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 32 users </a> </span> </li> <li> <a href="/site/zenn.dev/watany" title="『zenn.dev/watany』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> zenn.dev/watany </a> </li> <li> <a href="/hotentry/it" data-gtm-click-label="entry-search-result-item-category">テクノロジー</a> </li> <li><span class="entry-contents-date">2023/10/03</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">はじめに bun installで生成されるBunのロックファイルはbun.lockbというバイナリファイルである。 公式を読むと性能向上のためにバイナリ化していることがわかる。 Why is it binary? In a word: Performance. Bun’s lockfile saves & loads incredibly quickly, and saves a lot more data than what is typically inside lockfiles. 困ること まさにこのツイートの問題で、Git管理したいのにバイナリが出力されるのは不便で、どうしよう? と実際の本番利用では困るだろう。 解決方法 案1. git diffで差分確認する 公式のページを読むと、どうやら設定追加でgit diffができるらしい。 bun install request g</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/bun" data-gtm-click-label="entry-search-result-item-tag">bun</a></li> <li><a href="/q/git" data-gtm-click-label="entry-search-result-item-tag">git</a></li> <li><a href="/q/javascript" data-gtm-click-label="entry-search-result-item-tag">javascript</a></li> <li><a href="/q/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80" data-gtm-click-label="entry-search-result-item-tag">あとで読む</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://zenn.dev/watany/articles/e21a54cf3d56d8"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://zenn.dev/watany/articles/e21a54cf3d56d8" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/7b01f80094d3556c986836c30fa6173c32f367b5/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--wEAj5tVd--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3Abun.lockb%2525E3%252581%2525AEVersion%2525E7%2525AE%2525A1%2525E7%252590%252586%2525E3%252582%252592Git%2525E3%252581%2525A7%2525E3%252581%2525A9%2525E3%252581%252586%2525E3%252582%252584%2525E3%252582%25258B%2525EF%2525BC%25259F%2525E5%252595%25258F%2525E9%2525A1%25258C%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Awatany%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzJiYjJiYTdkZjkuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="bun.lockbのVersion管理をGitでどうやる?問題" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> <li class="bookmark-item js-user-bookmark-item js-keyboard-selectable-item"> <div class="centerarticle-entry is-image-entry-unit"> <div class="js-bookmark-stock-button is-hidden"> <button class="js-bookmark-stock-button-ready readlater-button" data-gtm-click-label="entry-search-result-item-stock-button" title="あとで読む" aria-label="あとで読む" tabindex="0" type="button" data-href="https://apply.workable.com/oven/"><span>あとで読む</span> </button> </div> <div class="centerarticle-entry-header"> <h3 class="centerarticle-entry-title"> <a href="https://apply.workable.com/oven/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="entry-search-result-item-title"> <img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fapply.workable.com%2Foven%2F" alt="">Oven </a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/apply.workable.com/oven/" class="js-keyboard-entry-page-openable" title="Oven (30 ブックマーク)" data-gtm-click-label="entry-search-result-item-users"> 30 users </a> </span> </li> <li> <a href="/site/apply.workable.com/" title="『apply.workable.com』の新着エントリー" data-gtm-click-label="entry-search-result-item-site-search-url"> apply.workable.com </a> </li> <li> <a href="/hotentry/social" data-gtm-click-label="entry-search-result-item-category">世の中</a> </li> <li><span class="entry-contents-date">2022/08/24</span></li> </ul> </div> <div class="centerarticle-entry-contents has-image"> <div class="centerarticle-entry-item"> <p class="centerarticle-entry-summary">Oven is on a mission to make JavaScript faster and simpler. That’s why we launched Bun, a fast all-in-one JavaScript runtime, bundler, and package manager. We’re looking for people to help us build the future of JavaScript and infrastructure on the Int...</p> <ul class="entrysearch-entry-tags"> <li><a href="/q/company" data-gtm-click-label="entry-search-result-item-tag">company</a></li> <li><a href="/q/JavaScript" data-gtm-click-label="entry-search-result-item-tag">JavaScript</a></li> <li><a href="/q/Programming" data-gtm-click-label="entry-search-result-item-tag">Programming</a></li> <li><a href="/q/news" data-gtm-click-label="entry-search-result-item-tag">news</a></li> </ul> <div class="following-bookmarks-container js-following-bookmarks-container" data-entry-url="https://apply.workable.com/oven/"> <ul class="following-bookmarks js-following-bookmarks"></ul> <script type="text/x-template" id="template-following-bookmark"> <li> <a href="{{ anchor_path }}" class="following-bookmark-link" data-gtm-label="entry-info-followingBookmarks"> <img src="{{ profile_image_url }}" alt="{{ user_name }}" class="following-bookmark-icon"> </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{ user_name }}</span><span class="following-bookmark-timestamp">{{ created }}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags">{{ #tags }}<li>{{ label }}</li>{{ /tags }}</ul> </span> </span> </li> </script> </div> </div> <div class="centerarticle-entry-image-wrapper"> <a href="https://apply.workable.com/oven/" class="centerarticle-entry-image" target="_blank" rel="noopener"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/8b6c97383d12f8e718f1fda41d6aae6add25333f/height=288;version=1;width=512/https%3A%2F%2Fwww.workable.com%2Fassets%2Ffacebook-preview.png" alt="Oven" data-gtm-click-label="entry-search-result-item-image"> </a> </div> </div> </div> </li> </ul> <div class="centerarticle-pager "> <span>1</span> <span class="js-keyboard-selectable-item"><a href="https://b.hatena.ne.jp/q/bun?page=2" class="js-keyboard-openable">2</a></span> <span class="centerarticle-pager-next js-keyboard-selectable-item"><a href="https://b.hatena.ne.jp/q/bun?page=2" class="js-keyboard-openable">次のページ</a></span> </div> </div> <ins id="entrysearch-ad-rectangle-middle-sp" class="entrylist-ad-sp-fluid for-sp"></ins> <div id="entrysearch-ad-rectangle-bottom-sp" class="touch-ad-rectangle"></div> </div> <div class="entry-wrapper"> <section class="entry-group"> <h2 class="entry-group-sectionTitle">新着記事</h2> <ul class="entry-group-list"> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/www.tokyo-np.co.jp/article/369192" title="教習中に心肺停止の教官を救命 横浜市立大生に自動車学校が感謝状:東京新聞デジタル" data-gtm-label="entry-recentEntriesInEntrySearch-title">教習中に心肺停止の教官を救命 横浜市立大生に自動車学校が感謝状:東京新聞デジタル</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/www.tokyo-np.co.jp/article/369192" data-gtm-label="entry-recentEntriesInEntrySearch-users">1 user</a></span><span class="entry-group-domain"><a href="/site/www.tokyo-np.co.jp/" data-gtm-label="entry-recentEntriesInEntrySearch-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.tokyo-np.co.jp%2Farticle%2F369192" alt="">www.tokyo-np.co.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/sirabee.com/2024/11/22/20163367696/" title="ミスドで発見したとんでもないドーナツ、不良品と思いきや… なぜか「こっちが欲しい」と大ウケ" data-gtm-label="entry-recentEntriesInEntrySearch-title">ミスドで発見したとんでもないドーナツ、不良品と思いきや… なぜか「こっちが欲しい」と大ウケ</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/sirabee.com/2024/11/22/20163367696/" data-gtm-label="entry-recentEntriesInEntrySearch-users">1 user</a></span><span class="entry-group-domain"><a href="/site/sirabee.com/" data-gtm-label="entry-recentEntriesInEntrySearch-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fsirabee.com%2F2024%2F11%2F22%2F20163367696%2F" alt="">sirabee.com</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/anna5.px.ebb.jp/?p=30" title="安里雅也 ブログで月収30万円稼ぐブログアフィリエイト最強の戦略の真実" data-gtm-label="entry-recentEntriesInEntrySearch-title">安里雅也 ブログで月収30万円稼ぐブログアフィリエイト最強の戦略の真実</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/anna5.px.ebb.jp/?p=30" data-gtm-label="entry-recentEntriesInEntrySearch-users">1 user</a></span><span class="entry-group-domain"><a href="/site/anna5.px.ebb.jp/" data-gtm-label="entry-recentEntriesInEntrySearch-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=http%3A%2F%2Fanna5.px.ebb.jp%2F%3Fp%3D30" alt="">anna5.px.ebb.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/news.infoseek.co.jp/article/sirabee_20163367696/" title="ミスドで発見したとんでもないドーナツ、不良品と思いきや… なぜか「こっちが欲しい」と大ウケ|Infoseekニュース" data-gtm-label="entry-recentEntriesInEntrySearch-title">ミスドで発見したとんでもないドーナツ、不良品と思いきや… なぜか「こっちが欲しい」と大ウケ|Infoseekニュース</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/news.infoseek.co.jp/article/sirabee_20163367696/" data-gtm-label="entry-recentEntriesInEntrySearch-users">1 user</a></span><span class="entry-group-domain"><a href="/site/news.infoseek.co.jp/" data-gtm-label="entry-recentEntriesInEntrySearch-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fnews.infoseek.co.jp%2Farticle%2Fsirabee_20163367696%2F" alt="">news.infoseek.co.jp</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/yuuutunews66.com/archives/27319842.html" title="【賛否】「子どもに就いてほしい職業」ランキング! 3位「薬剤師」2位「公務員」…1位は? : ゆううつニュース" data-gtm-label="entry-recentEntriesInEntrySearch-title">【賛否】「子どもに就いてほしい職業」ランキング! 3位「薬剤師」2位「公務員」…1位は? : ゆううつニュース</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/yuuutunews66.com/archives/27319842.html" data-gtm-label="entry-recentEntriesInEntrySearch-users">1 user</a></span><span class="entry-group-domain"><a href="/site/yuuutunews66.com/" data-gtm-label="entry-recentEntriesInEntrySearch-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fyuuutunews66.com%2Farchives%2F27319842.html" alt="">yuuutunews66.com</a></span></p> </div> </div> </li> <li> <div class="entry-group-list-inner"> <div class="entry-group-text"> <h3 class="entry-group-title"><a href="/entry/s/topics.smt.docomo.ne.jp/article/fujinkoron/life/fujinkoron-14748" title="長寿国日本、8人に1人が〈老人性うつ〉に。「やる気がない」「すぐカッとする」「人に会いたくない」…あなたは大丈夫?《老後うつ危険度テスト》(婦人公論.jp)|dメニューニュース" data-gtm-label="entry-recentEntriesInEntrySearch-title">長寿国日本、8人に1人が〈老人性うつ〉に。「やる気がない」「すぐカッとする」「人に会いたくない」…あなたは大丈夫?《老後うつ危険度テスト》(婦人公論.jp)|dメニューニュース</a></h3> <p class="entry-group-meta"><span class="entry-group-users"><a href="/entry/s/topics.smt.docomo.ne.jp/article/fujinkoron/life/fujinkoron-14748" data-gtm-label="entry-recentEntriesInEntrySearch-users">1 user</a></span><span class="entry-group-domain"><a href="/site/topics.smt.docomo.ne.jp/" data-gtm-label="entry-recentEntriesInEntrySearch-domain"><img src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Ftopics.smt.docomo.ne.jp%2Farticle%2Ffujinkoron%2Flife%2Ffujinkoron-14748" alt="">topics.smt.docomo.ne.jp</a></span></p> </div> </div> </li> </ul> </section> </div> </div> <div id="keyboard-shortcut-help" class="shortcut-help is-hidden"> <h3 class="shortcut-help-title">キーボードショートカット一覧</h3> <p><span class="shortcut-help-key">j</span>次のブックマーク</p> <p><span class="shortcut-help-key">k</span>前のブックマーク</p> <p><span class="shortcut-help-key">l</span>あとで読む</p> <p><span class="shortcut-help-key">e</span>コメント一覧を開く</p> <p><span class="shortcut-help-key">o</span>ページを開く</p> <button tyle="button" class="shortcut-help-close js-close-button">✕</button> </div> <script type="text/javascript"> // ---------------- dfp section ---------------- var valve = valve || []; if (isMobile()) { valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/bookmark_overlay_sp', sizes: [[320,80],[320,70],[320,50]], slotId: 'touch-footer-ad' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entrysearch_rectangle_bottom_sp', sizes: [[300,250]], slotId: 'entrysearch-ad-rectangle-bottom-sp' }); v.sealDFPSlots(); }); } else { valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/bookmark_entrysearch_sidebar_top_pc', sizes: [[300,250]], slotId: 'entrysearch-ad-sidebar-top' }); v.defineDFPSlot({ unit: '/4374287/bookmark_entrysearch_sidebar_bottom_pc', sizes: [[300,250]], slotId: 'entrysearch-ad-sidebar-bottom' }); v.sealDFPSlots(); }); } // ---------------- ydn section ---------------- if (isMobile()) { valve.push(function(v) { v.defineFluidSlot({ insId: 'entrysearch-ad-rectangle-middle-sp', yadsAdDs: '62199_242886' }); }); } </script> <script> var valve = window.valve || []; valve.push(function(v) { var pageKeyValues = {}; if (document.cookie.split(';').some(function(item) { return item.indexOf('202011_guest_status=register_incomplete') >= 0})) { pageKeyValues.bookmark_status = 'register_incomplete'; } v.config({ pageKeyValues: pageKeyValues, textSelector: ".entry-search-articles", content: { result: "ng" }, service: 'bookmark' }); }); </script> <script src="https://cdn.pool.st-hatena.com/valve/valve.js" async></script> <div class="footer"> <div class="footer-inner"> <div class="footer-inner-group footer-bookmark"> <h2 class="footer-title"><a href="/" data-gtm-label="footer-btop">はてなブックマーク</a></h2> <div class="footer-list-wrapper"> <ul class="footer-list footer-list--pc"> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/all" class="hotentry js-keyboard-openable" data-gtm-label="footerCategories-hotentry">総合</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/general" class="general js-keyboard-openable" data-gtm-label="footerCategories-general">一般</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/social" class="cat-social js-keyboard-openable" data-gtm-label="footerCategories-social">世の中</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/economics" class="cat-economics js-keyboard-openable" data-gtm-label="footerCategories-economics">政治と経済</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/life" class="cat-life js-keyboard-openable" data-gtm-label="footerCategories-life">暮らし</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/knowledge" class="cat-knowledge js-keyboard-openable" data-gtm-label="footerCategories-knowledge">学び</a></li> </ul> <ul class="footer-list footer-list--pc"> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/it" class="cat-it js-keyboard-openable" data-gtm-label="footerCategories-it">テクノロジー</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/entertainment" class="cat-entertainment js-keyboard-openable" data-gtm-label="footerCategories-entertainment">エンタメ</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/game" class="cat-game js-keyboard-openable" data-gtm-label="footerCategories-game">アニメとゲーム</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/fun" class="cat-fun js-keyboard-openable" data-gtm-label="footerCategories-fun">おもしろ</a></li> </ul> <ul class="footer-list"> <li class="footer-list-item"><a href="/guide/tools">アプリ・拡張機能</a></li> <li class="footer-list-item"><a href="https://bookmark.hatenastaff.com/">開発ブログ</a></li> <li class="footer-list-item"><a href="/help/">ヘルプ</a></li> <li class="footer-list-item"><a href="https://hatena.zendesk.com/hc/ja/categories/900000153166">お問い合わせ</a></li> <li class="footer-list-item footer-list-item--sp"><a href="/guide/guideline">ガイドライン</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/rule">利用規約</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/privacypolicy-ja">プライバシーポリシー</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/cookie-policy">利用者情報の外部送信について</a></li> </ul> <ul class="footer-list footer-list--pc"> <li class="footer-list-item footer-list-item--pc"><a href="/guide/guideline">ガイドライン</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/rule">利用規約</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/privacypolicy-ja">プライバシーポリシー</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/cookie-policy">利用者情報の外部送信について</a></li> </ul> </div> </div> <div class="footer-inner-group footer-bookmark-sns"> <h2 class="footer-title">公式Twitter</h2> <div class="footer-bookmark-list"> <ul class="footer-list"> <li class="footer-list-item"><a href="https://twitter.com/HatenaBookmark" target="_blank" rel="noopener" data-gtm-click-label="footer-officialTwitter-name">公式アカウント</a></li> <li class="footer-list-item"><a href="https://twitter.com/hatebu" target="_blank" rel="noopener" data-gtm-click-label="footer-hotentryTwitter-name">ホットエントリー</a></li> </ul> </div> </div> <div class="footer-inner-group footer-hatena"> <h2 class="footer-title">はてなのサービス</h2> <ul class="footer-list"> <li class="footer-list-item"><a href="https://hatenablog.com/" data-gtm-label="footerServices-blog">はてなブログ</a></li> <li class="footer-list-item"><a href="https://hatenablog.com/guide/pro?plus_via=hatenabookmark_footer&utm_source=hatenabookmark&utm_medium=referral&utm_campaign=hatenabookmark_to_hatenablog_pro&utm_content=hatenabookmark_footer" data-gtm-label="footerServices-blog-pro">はてなブログPro</a></li> <li class="footer-list-item"><a href="https://q.hatena.ne.jp/" data-gtm-label="footerServices-question">人力検索はてな</a></li> <li class="footer-list-item"><a href="http://d.hatena.ne.jp/" data-gtm-label="footerServices-keyword">はてなブログ タグ</a></li> <li class="footer-list-item"><a href="http://hatenanews.com/" data-gtm-label="footerServices-hatenanews">はてなニュース</a></li> <li class="footer-list-item"><a href="https://soredoko.jp/" data-gtm-label="footerServices-soredoko">ソレドコ</a></li> </ul> </div> </div> <div class="footer-bottom"> <div class="footer-app"> <ul> <li class="footer-list-item"><a href="https://apps.apple.com/jp/app/hatenabukkumaku/id354976659?mt=8" target="_blank" rel="noopener" data-gtm-click-label="footer-app-ios"><img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/common/dl-button/appstore@2x.png" alt="App Storeからダウンロード"></a></li> <li class="footer-list-item"><a href="https://play.google.com/store/apps/details?id=com.hatena.android.bookmark&referrer=utm_source%3Dbookmark_sp%26utm_campaign%3Dbookmark_sp_user&hl=ja" target="_blank" rel="noopener" data-gtm-click-label="footer-app-android"><img src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/images/v4/public/common/dl-button/googleplay@2x.png" alt="Google Playで手に入れよう"></a></li> </ul> </div> <div class="copyright">Copyright © 2005-2024 <a href="http://www.hatena.ne.jp/">Hatena</a>. All Rights Reserved.</div> </div> </div> <div id="touch-footer-ad"></div> <div id="touch-footer-ad-placeholder"></div> <div class="modal-overlay"></div> <script type="text/javascript" src="https://b.st-hatena.com/77d2ee6f79ddaf78eb2d198936bae315b6721993/js/v4/bookmark.star.js" async></script> <div class="js-head-notify is-hidden">設定を変更しました<span class="js-head-notify-close-button">x</span></div> </body> </html>