KafkaGoSaur:基于kafka-go的WebAssembly驱动的 Kafka 客户端


KafkaGoSaur是Deno的一个新的Kafka客户端,它是在kafka-go基础上用WebAssembly构建的,kafka-go是为Go编写的优秀的Kafka客户端库。
这篇文章解释了KafkaGoSaur的基本用法,并对其性能进行了基准测试。但它也深入探讨了WebAssembly如何用于Go和JavaScript之间的互操作。

写一个消息,首先使用KafkaGoSaur实例上的createWriter函数创建KafkaWriter实例。

import KafkaGoSaur from "https://deno.land/x/kafkagosaur/mod.ts";

const kafkaGoSaur = new KafkaGoSaur();
const writer = await kafkaGoSaur.createWriter({
  broker:
"localhost:9092",
  topic:
"test-0",
});

const enc = new TextEncoder();
const msgs = [{ value: enc.encode(
"value") }];

await writer.writeMessages(msgs);

  

kafka-go
Go是一种最小但功能强大的语言。它的简单性推动了近年来初创公司和企业对它的采用,因为它可以快速构建可扩展和高性能的软件。一个有用的标准库、现代工具和高质量的第三方库使它成为最受欢迎的工作语言之一。
kafka-go就是这些第三方库中的一个。这是一个由Segment开发的高效且简单易用的Kafka客户端。它同时具有低级和高级的API。

Deno
鲜为人知的是Deno,一个现代的JavaScript和TypeScript的运行时间,专注于伟大的开发者体验。它由Ryan Dahl创建,修复了他在构建Node.js时引入的长期存在的问题和遗憾。Deno尽可能地与网络兼容,这意味着它开箱就能运行WebAssembly二进制文件。
 
WebAssembly
WebAssembly(WASM)是一种二进制指令格式,作为一个通用的编译目标。简单地说,它允许几乎任何语言的代码在浏览器或任何兼容的环境中运行,如Deno。
通过将kafka-go编译成WebAssembly二进制文件,将这三种技术混合起来,你就得到了KafkaGoSaur:一个为Deno准备的新Kafka客户端。