{"id":119917,"date":"2024-09-23T15:43:09","date_gmt":"2024-09-23T13:43:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-javascript-platforme-bun-dobavlena-podderzhka-vyzova-koda-na-yazyke-si"},"modified":"2024-09-23T15:43:09","modified_gmt":"2024-09-23T13:43:09","slug":"v-javascript-platforme-bun-dobavlena-podderzhka-vyzova-koda-na-yazyke-si","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/news\/v-javascript-platforme-bun-dobavlena-podderzhka-vyzova-koda-na-yazyke-si","title":{"rendered":"A Bun JavaScript-platformon hozz\u00e1adt\u00e1k a C nyelv\u0171 k\u00f3dh\u00edv\u00e1s t\u00e1mogat\u00e1s\u00e1t.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A Bun platform, developed as an alternative to Node.js and intended for the isolated execution of applications written in JavaScript, JSX, and TypeScript, has implemented an experimental feature that allows for the compilation and execution of handlers written in C. Previously, calling low-level code required either creating N-API extensions or compiling the code into the WebAssembly (WASM\/WASI) format, which complicated development and imposed certain limitations. Now, C code can be embedded directly in JavaScript and compiled on-the-fly using the TinyCC compiler, and dynamically linked libraries can also be integrated.           import { cc } from 'bun:ffi';       export const {       symbols: { hello },     } = cc({       source: '.\/hello.c',       symbols: {         hello: {           returns: 'void',           args: [],         },       },     });       hello();      <\/p>\n<p>The bun:ffi layer is used for working with the C language, which compiles source code into machine instructions, places it in memory during execution, and ensures automatic type conversion between JavaScript and C. It is noted that the overhead when accessing compiled C code is minimized, resulting in a latency of about 2 nanoseconds for each call to external C functions. As an example, it is shown how to directly call FFmpeg libraries for converting short videos \u2014 by avoiding operations like spawning a separate process and allocating memory for each video, the total execution time for a test task using bun:ffi was reduced by three times.        <\/p>\n<p>Furthermore, in the Bun 1.1.29 release, support for N-API (napi) has been added for C code, allowing C handlers to return objects, strings, arrays, and other non-primitive JavaScript values, in addition to the C types such as int and float. The mechanism for calling handlers in C also works with the dynamic loading of any libraries with C ABI, regardless of the language they are originally written in (C++, Rust, Zig, etc.), which allows calling functions provided by these libraries from JavaScript code without a separate rebuilding stage. For example, you can now access system APIs from JavaScript.      <\/p>\n<p>Eml\u00e9keztet\u00fcnk arra, hogy a Bun projekt a Node.js-re \u00edrt szerveralkalmaz\u00e1sok kompatibilit\u00e1s\u00e1nak figyelembev\u00e9tel\u00e9vel fejl\u0151dik, \u00e9s a Node.js API-j\u00e1nak nagy r\u00e9sz\u00e9t t\u00e1mogatja. A platform tartalmaz egy eszk\u00f6zk\u00e9szletet a JavaScript \u00e9s TypeScript nyelveken \u00edrt alkalmaz\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz \u00e9s v\u00e9grehajt\u00e1s\u00e1hoz, valamint egy runtime-ot a JavaScript alkalmaz\u00e1sok b\u00f6ng\u00e9sz\u0151 n\u00e9lk\u00fcli futtat\u00e1s\u00e1hoz, egy csomagkezel\u0151t (NPM kompatibilis), tesztel\u00e9si eszk\u00f6zk\u00e9szletet \u00e9s egy \u00f6n\u00e1ll\u00f3 csomagok k\u00e9sz\u00edt\u00e9s\u00e9re szolg\u00e1l\u00f3 rendszert. Teljes\u00edtm\u00e9ny szempontj\u00e1b\u00f3l a Bun jelent\u0151sen fel\u00fclm\u00falja a Den\u00f3t \u00e9s a Node.js-t (a React keretrendszeren alapul\u00f3 tesztek alapj\u00e1n a Bun platform k\u00e9tszer gyorsabb, mint a Deno, \u00e9s majdnem \u00f6tsz\u00f6r gyorsabb, mint a Node.js). A Bun k\u00f3dja Zig \u00e9s C++ nyelveken \u00edr\u00f3dott, \u00e9s MIT licenc alatt terjesztik. A JavaScript v\u00e9grehajt\u00e1s\u00e1hoz a JavaScriptCore JavaScript motor \u00e9s a WebKit projekt komponensei, valamint tov\u00e1bbi jav\u00edt\u00e1sok ker\u00fcltek felhaszn\u00e1l\u00e1sra.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61915\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Bun, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b Node.js \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 JavaScript, JSX \u0438 TypeScript, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438. \u0420\u0430\u043d\u0435\u0435 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c N-API-\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 WebAssembly (WASM\/WASI), \u0447\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u043b\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0438 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-119917","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Bun, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b Node.js \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 JavaScript, JSX \u0438 TypeScript, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/news\/v-javascript-platforme-bun-dobavlena-podderzhka-vyzova-koda-na-yazyke-si\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Bun \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Bun, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b Node.js \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 JavaScript, JSX \u0438 TypeScript, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/news\/v-javascript-platforme-bun-dobavlena-podderzhka-vyzova-koda-na-yazyke-si\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-09-23T13:43:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-09-23T13:43:09+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47A Bun JavaScript platformra t\u00e1mogat\u00e1s ker\u00fclt bevezet\u00e9sre C nyelv\u0171 k\u00f3dh\u00edv\u00e1sokhoz | ProHoster","description":"A Bun platform, amely alternat\u00edvak\u00e9nt fejl\u0151dik a Node.js-hez, \u00e9s amely JavaScript, JSX \u00e9s TypeScript nyelveken \u00edrt alkalmaz\u00e1sok elk\u00fcl\u00f6n\u00edtett v\u00e9grehajt\u00e1s\u00e1ra k\u00e9sz\u00fclt, k\u00eds\u00e9rleti lehet\u0151s\u00e9get val\u00f3s\u00edt meg.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/news\/v-javascript-platforme-bun-dobavlena-podderzhka-vyzova-koda-na-yazyke-si","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Bun \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 | ProHoster","og:description":"\u0412 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Bun, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b Node.js \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 JavaScript, JSX \u0438 TypeScript, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.","og:url":"https:\/\/prohoster.info\/hu\/blog\/news\/v-javascript-platforme-bun-dobavlena-podderzhka-vyzova-koda-na-yazyke-si","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-09-23T13:43:09+00:00","article:modified_time":"2024-09-23T13:43:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"119917","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 06:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 06:45:19","updated":"2026-01-23 06:45:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/119917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=119917"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/119917\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=119917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=119917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=119917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}