{"_id":"@vonage/kafka-glue","_rev":"125-a2f76005a009da6bf229c9f4444310c7","name":"@vonage/kafka-glue","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@vonage/kafka-glue","version":"1.0.0","author":{"name":"Vonage"},"_id":"@vonage/kafka-glue@1.0.0","maintainers":[{"name":"web-il","email":"web-il@vonage.com"},{"name":"iceberg-team","email":"icebergteam@vonage.com"},{"name":"yinon","email":"yinon.oved@vonage.com"},{"name":"unified_portal","email":"unified_portal_dev@vonage.com"},{"name":"vreporter-npm","email":"vreporter-support@vonage.com"},{"name":"vbcbe","email":"vbc-be@vonage.com"},{"name":"voxip_team","email":"voxip-team@vonage.com"},{"name":"gunifydevops","email":"gunifydevops@vonage.com"},{"name":"yuri.guller","email":"gullerya@gmail.com"},{"name":"idanvon","email":"idan.cohen@vonage.com"},{"name":"nexmo-devrel","email":"devrel@vonage.com"},{"name":"vvd","email":"vivid@vonage.com"},{"name":"vonagemeetings","email":"VBC-Meetings@vonage.com"}],"homepage":"https://github.com/Vonage/kafka-glue#readme","bugs":{"url":"https://github.com/Vonage/kafka-glue/issues"},"dist":{"shasum":"dd7eedfbf69373a216a88331051566640ed4d417","tarball":"https://registry.npmjs.org/@vonage/kafka-glue/-/kafka-glue-1.0.0.tgz","fileCount":32,"integrity":"sha512-+0KWu61wZH8wRGnkUGzCaXiWI/T7hpzBk2YyDn9KBNQKLjBG+QLe4rCFCcjhvIvcjnBSEtfvCODq7JFdUlvRnA==","signatures":[{"sig":"MEYCIQC98/GrBN/t/Bg+sU6zjhr8bwfEqTHISTJaCs+6k7Jt4QIhANattr0dByzYU/wjbTXmvMYzTP3A+MgaxMAEEmnKcen2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32368,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaaZSCRA9TVsSAnZWagAAy78QAJA3blmbIMpJk4mZZQa1\n2I0GHGaftxauI8jWlHXay/hvn0WmNLZYizoFjMRe4Dcd5cPEQXfdv5gfjRCH\npZ1aU4I+hOvacOeS4F5dK0HDH/LDpVA0W+zcdzRuhjQugMtViURXm9c+7Ibt\nyVTVdOMENAr79MBhl97c9cPdyun0UCuaaiXTy0sUUmCNwgu99+4sXfWkO8jN\ntDVuNiK/yrbHfyBnMRlCb1i46bDhLD2Cx6EskjHM487HNRF+M/Lke2vUGBmT\n0feBmwTOW4SqLBydHrs+Lo9NWYF2I8QjLqgwrYHVzCRCs70MEq7d2YLbFVnc\np2MqsFjhwBuyDJZIIJJg+xblB/hgl/QgS8m5xbx0uUAUNU4Wk12JPfZKS3Bl\nVfX1AGGIYnatacNXnE4HDySUM3//QlsU7ln3pcXAgFAOkqCeFpnHNN3ykdO6\nKsEPRLh01dDfmaTGNCxVQN74cigJ7MuN3DSb58h0NIq16a3Jc15z1fbDkFlr\nRL2uVlqCkQqhUKmM2nmvWH6goLqGkCDMm5GpIS/HKI3nRg5yknkRpbUYEpWv\nfpcErfBQOe/km75egu2s31me6BefXP2YTTqXBgmeqH4WuFwrujYMSEj8v9gh\nA3evTf8zXfMViJMCmSAA+IyL2ZXR3G8Ke3BNB+KGzBtaOR4YHkJvcKKp8ENU\nP3do\r\n=jMsd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","typings":"src/index.d.ts","_npmUser":{"name":"vvd","email":"vivid@vonage.com"},"repository":{"url":"git+https://github.com/Vonage/kafka-glue.git","type":"git","directory":"packages/kafka-glue"},"_npmVersion":"7.7.6","description":"Kafka Glue is a collection of libraries for kafka consumers and producers integrated with AWS Glue schema registry with RXJS to expose streaming of the kafka.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"rxjs":"^6.6.3","avro-js":"^1.10.1","aws-sdk":"^2.844.0","node-rdkafka":"^2.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kafka-glue_1.0.0_1617536594309_0.01039136264868512","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@vonage/kafka-glue","version":"1.1.0","keywords":["javascript","node","kafka","aws","glue","schema"],"author":{"name":"Vonage"},"license":"Apache-2.0","_id":"@vonage/kafka-glue@1.1.0","maintainers":[{"name":"web-il","email":"web-il@vonage.com"},{"name":"iceberg-team","email":"icebergteam@vonage.com"},{"name":"yinon","email":"yinon.oved@vonage.com"},{"name":"unified_portal","email":"unified_portal_dev@vonage.com"},{"name":"vreporter-npm","email":"vreporter-support@vonage.com"},{"name":"vbcbe","email":"vbc-be@vonage.com"},{"name":"voxip_team","email":"voxip-team@vonage.com"},{"name":"gunifydevops","email":"gunifydevops@vonage.com"},{"name":"yuri.guller","email":"gullerya@gmail.com"},{"name":"idanvon","email":"idan.cohen@vonage.com"},{"name":"nexmo-devrel","email":"devrel@vonage.com"},{"name":"vvd","email":"vivid@vonage.com"},{"name":"vonagemeetings","email":"VBC-Meetings@vonage.com"}],"homepage":"https://github.com/Vonage/kafka-glue#readme","bugs":{"url":"https://github.com/Vonage/kafka-glue/issues"},"dist":{"shasum":"3456d52b99df7e7bce876b6b4b2a1474ea798053","tarball":"https://registry.npmjs.org/@vonage/kafka-glue/-/kafka-glue-1.1.0.tgz","fileCount":32,"integrity":"sha512-bCGOQ0IWWCgr3Oh4Iojr/kS3+F2NqPgWOzOvM+/uKA8HPKmzs/WqKCSm+a8pAsIqHgvsmNDxgZLABSVkvLWTLQ==","signatures":[{"sig":"MEYCIQCHnIxVGxF3Ku8k6UDcHW0lX9pXCFO1IVfAh7K1Ds9qjwIhAJmosXegHyii9P0TmgNvwAOYFSh2ZWewgR5C9vNHYm4i","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgacJvCRA9TVsSAnZWagAAmIMP/irwqWMAtP+ZMWF88EBM\n7cCmrXOU/S+OV0t+scmikQdyL01BRhUjJHd1Xiw4hTy2lF0Az2ol/rEO+LkJ\nCfx5Qqo+7mTIEcaBKIYqBAWqGqoXYJbWU7j0H1V5esN1y1EYthCL9skqJy8h\nHbbT33oUBsiM5VIbc7o5+16pjrbtLtzk1ZIPEORaNjj3C6ZGXFRaEst0VyAY\noIvJ2uqEeVm4PGAyEuQ3N+tGZrRLd3Oq02KswJgRNwtNJL9w2Pbnz8SiPrgZ\nm4S17eeZLhg5ldgPJZbcPUBcI6D7qZu4KtEaDZDcC4j/P6tAMVpYS2PeRpLR\n0KK9g8U+9QqcF7DiydJkZdyQwc8frGdDw91c4y+Wrp+JU306AkX/hk/Yd6RJ\nOADMdRRkNGz/w5MMGtiZxvde93jMsXi6kMkNT3tgXHgvwuOO2gDZI1HmXbLc\nuNqQwJ/ZFq+v0ip4wHWISkQLwtaFxZ6DbxMYDqRgKcCOE9ifqhW9mVlnTFbw\nvH1lkRvCm38JkyULZ3evWHsd1cmxzrTnXLtGrzaHPh14+rJIgQmQqKB+yyDy\nFYcp9ThmYOBlHOlk6426KO38xm0r7l3vCPd99xh1yT/jtZXDMpxpBQm2YnI+\n+3xwhOMhr5Qb0sO7sEQp9eJOnUs085vsEdCw0OwgB8MK0n80Aa5crbjbFzz7\n1mb1\r\n=/HAt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","typings":"src/index.d.ts","_npmUser":{"name":"vvd","email":"vivid@vonage.com"},"repository":{"url":"git+https://github.com/Vonage/kafka-glue.git","type":"git","directory":"packages/kafka-glue"},"_npmVersion":"7.7.6","description":"kafka consumers and producers integrated with AWS Glue schema registry with RXJS for streaming","directories":{},"_nodeVersion":"12.21.0","dependencies":{"rxjs":"^6.6.3","avro-js":"^1.10.1","aws-sdk":"^2.844.0","node-rdkafka":"^2.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kafka-glue_1.1.0_1617543790554_0.32142342986873595","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-04-04T11:43:14.309Z","modified":"2026-09-03T04:37:51.638Z","1.0.0":"2021-04-04T11:43:14.460Z","1.1.0":"2021-04-04T13:43:10.692Z"},"bugs":{"url":"https://github.com/Vonage/kafka-glue/issues"},"author":{"name":"Vonage"},"license":"Apache-2.0","homepage":"https://github.com/Vonage/kafka-glue#readme","keywords":["javascript","node","kafka","aws","glue","schema"],"repository":{"url":"git+https://github.com/Vonage/kafka-glue.git","type":"git","directory":"packages/kafka-glue"},"description":"kafka consumers and producers integrated with AWS Glue schema registry with RXJS for streaming","maintainers":[{"email":"web-il@vonage.com","name":"web-il"},{"email":"icebergteam@vonage.com","name":"iceberg-team"},{"email":"unified_portal_dev@vonage.com","name":"unified_portal"},{"email":"vreporter-support@vonage.com","name":"vreporter-npm"},{"email":"vbc-be@vonage.com","name":"vbcbe"},{"email":"gullerya@gmail.com","name":"yuri.guller"},{"email":"idan.cohen@vonage.com","name":"idanvon"},{"email":"devrel@vonage.com","name":"nexmo-devrel"},{"email":"vivid@vonage.com","name":"vvd"},{"email":"VBC-Meetings@vonage.com","name":"vonagemeetings"},{"email":"video.api.ops@vonage.com","name":"vonage-jenkins"},{"email":"andreina.dasilvacabral@vonage.com","name":"adasilvacabral"},{"email":"sarvesh.bisht@vonage.com","name":"sarvesh.bisht"},{"email":"vgai-studio-developers@vonage.com","name":"vgai-dev"},{"email":"vcp_webrtc@vonage.com","name":"vonage_client_media_processing"},{"email":"or.abramovich@vonage.com","name":"or.cpc"},{"email":"lily.lihovodov@vonage.com","name":"llihovodov"},{"email":"daniel.sapir@vonage.com","name":"daniel-sapir"},{"email":"Aviad.Houri@vonage.com","name":"aviadhouri.va"},{"email":"ignacio.delacruz@vonage.com","name":"idelacruz"},{"email":"frontier@vonage.com","name":"vonage-frontier"},{"email":"hila.klein@vonage.com","name":"hilakl"},{"email":"Saurabh.Kulkarni@vonage.com","name":"saurabh.vonage"},{"email":"tamir.nahum@vonage.com","name":"leppelin"},{"email":"antoni.silvestrepadros@vonage.com","name":"asilvonage"},{"email":"Gayathri.Pojula@vonage.com","name":"gpojula"},{"email":"egor.limenko@vonage.com","name":"elimenko.vonage"},{"email":"kanav.bhatia@vonage.com","name":"kanav_vonage"},{"email":"omri.zilber@vonage.com","name":"omrizilber"},{"email":"marceli.olszewski@vonage.com","name":"molszewski_v"},{"email":"sailu.vejella@vonage.com","name":"sailusha"},{"email":"ragul.palanisamy@vonage.com","name":"rpalanisamy-vonage"},{"email":"Valentyn.Bohdan@vonage.com","name":"vbohdan_vonage"},{"email":"andrew.bolles@vonage.com","name":"abolles"},{"email":"gorka.revillafernandez@vonage.com","name":"gorka.vonage"},{"email":"bharath.ps@vonage.com","name":"bharath-vonage"},{"email":"mor.tubul@vonage.com","name":"morvonage"},{"email":"ilan.aradbilavsky@vonage.com","name":"ilan.aradbilavsky.at.vonage.com"},{"email":"chuck.reeves@vonage.com","name":"vonreeves"},{"email":"avi.dantes@vonage.com","name":"avi.dantes"},{"email":"michal.galin@vonage.com","name":"mgalin"},{"email":"jakub.hajduk@vonage.com","name":"jhajduk.vonage"},{"email":"Nitsan.unger@vonage.com","name":"nitsanungerfrontier"},{"email":"vladimir.quezada@vonage.com","name":"vquezada"},{"email":"alessio.didomenico@vonage.com","name":"adidomenico"},{"email":"sathish.r@vonage.com","name":"sathishr-vonage"},{"email":"pamu.pravallika@vonage.com","name":"pravallika-pamu"},{"email":"avijit.bagdi@vonage.com","name":"abagdi"},{"email":"anuradh.lankapalli@vonage.com","name":"anuradhlankapalli"},{"email":"hen.rosenberg@vonage.com","name":"hrosenberg"},{"email":"gokul.narayanan@vonage.com","name":"gokul-vonage"},{"email":"alistair.slowe@vonage.com","name":"aslowe-vcc"},{"email":"vbc-web-cicd@vonage.com","name":"vbc-web-cicd-bot"},{"email":"marina.serranomontes@vonage.com","name":"mserranomontes"},{"email":"Ariel.Bar@vonage.com","name":"ariel12955"},{"email":"Francisco.Becerra@vonage.com","name":"franbecerra"},{"email":"Uri.Haim@vonage.com","name":"urihaim"},{"email":"manuel.veranieto@vonage.com","name":"mvera_vonage"},{"email":"mike.zhylevych@vonage.com","name":"mike.zhylevych"},{"email":"mithun.prabhu@vonage.com","name":"mprabhuvonage"},{"email":"sharad.srivastava@vonage.com","name":"sharad-srivastava2"},{"email":"lukasz.pilarski@vonage.com","name":"lucas_pilarski"},{"email":"manish.ranjan@vonage.com","name":"manish-ranjan07"},{"email":"shubham.rajput@vonage.com","name":"srajput0909"},{"email":"pablo.villenamontes@vonage.com","name":"pvillenamontes"},{"email":"diogo.simoes@vonage.com","name":"dsimoes2"},{"email":"manel.jimeno@vonage.com","name":"manel_vonage"},{"email":"joseantonio.oliveraortega@vonage.com","name":"joliveraortega"}],"readme":"# kafka-glue\n\nKafka Glue is a collection of libraries for kafka consumers and producers integrated with AWS Glue schema registry with RXJS to expose streaming of the kafka messages.\n\n## Usage Examples\n### Producer\n\n#### Create the instance\n```ts\nconst producer = new Producer<{type: string}, string>({\n    schema: {\n      region: 'us-east-1',\n      valueParserProtocol: 'avro',\n      keyParserProtocol: 'string',\n      valueSchemaConfig: {\n        SchemaId: {\n          RegistryName: '<name>',\n          SchemaName: '<name>'\n        },\n        SchemaVersionNumber: {\n          LatestVersion: true\n        }\n      },\n      keySchemaConfig: {\n        encoding: 'utf-8'\n      }\n    },\n    kafka: {\n      topic: '<name>',\n      pullInterval: 300,\n      topicConfig: {},\n      globalConfig: {\n        // 'debug': 'producer,cgrp,topic,fetch',\n        'log_level': 3,\n        'security.protocol': 'ssl',\n        'metadata.broker.list': '<list>'\n      }\n    }\n  });\n```\n#### (Optional) Set callback for the on ready event\n```ts\nproducer.onReady = (info, metadata) => {\n    // console.log(info, metadata);\n  };\n```\n#### Initialize the instance (make sure to use await as this is an async function)\n```ts\n  await producer.init();\n```\n#### Add subscribers for errors, logs, and delivery reports\n```ts\nproducer.logs$.subscribe(log => {\n    console.warn({ log });\n  });\n  producer.errors$.subscribe(err => {\n    console.error(err);\n  });\n  producer._deliveryReport.subscribe(report => {\n    console.log({ report });\n  });\n  producer._offsetReport.subscribe(offset => {\n    console.log(`Offset: ${offset}`);\n  });\n```\n#### Produce messages! 🥳\n```ts\nproducer.produce({type: 'test'}, 'test', Date.now());\nproducer.produce({type: 'test2'}, 'test', Date.now());\n```\nplease refer [Node JS Producer Example](../../examples/nodejs-example/producer.ts) for the full example.\n\n---\n\n### Consumer\n\n#### Create the instance\n```ts\nconst consumer = new Consumer({\n    schema: {\n      region: 'us-east-1',\n      valueParserProtocol: 'avro',\n      keyParserProtocol: 'string',\n      valueSchemaConfig: {\n        SchemaId: {\n          RegistryName: '----',\n          SchemaName: '----'\n        },\n        SchemaVersionNumber: {\n          LatestVersion: true\n        }\n      },\n      keySchemaConfig: {\n        encoding: 'utf-8'\n      }\n    },\n    kafka: {\n      topics: ['test'],\n      topicConfig: {\n        'auto.offset.reset': 'earliest'\n      },\n      globalConfig: {\n        'enable.auto.offset.store': false,\n        'enable.auto.commit': false,\n        'group.id': '<id>',\n        'security.protocol': 'ssl',\n        'metadata.broker.list': '<list>'\n      }\n    }\n  });\n```\n#### (Optional) Set callback for the on ready event\n```ts\n// set callback that will be fired once kafkaClient is ready to subscribe\n  consumer.onReady = (info, metadata) => {\n    consumer.kafkaClient.assign([{ topic: 'test', partition: 0, offset: 1 }]);\n  };\n```\n#### Initialize the instance (make sure to use await as this is an async function)\n```ts\n  await consumer.init();\n```\n#### Add subscribers for errors, logs, and incoming messages\n```ts\nconsumer.logs$.subscribe(log => {\n    // console.log(log.message);\n  });\n  consumer.errors$.subscribe(err => {\n    console.error(err);\n  });\n  consumer.messages$.subscribe(msg => {\n    console.log(msg);\n  });\n```\n#### Start the consumer 🥳\n```ts\nconsumer.consume();\n```\nplease refer [Node JS Consumer Example](../../examples/nodejs-example/consumer.ts) for the full example.\n","readmeFilename":"README.md"}