Blizzard / node-rdkafka

Node.js bindings for librdkafka
MIT License
2.11k stars 392 forks source link

Looking for more Collaborators! #628

Open webmakersteve opened 5 years ago

webmakersteve commented 5 years ago

Hi everybody.

First off, I just want to thank the community for all of the support this repository has gotten. A few years ago when I started working on what would become node-rdkafka, I never could have imagined it getting this big! It wouldn't be nearly as big without all of you - your contributions, your bug reports, and the inspiration to keep me working on it.

This project originated on Blizzard's data team. We built out kafka support in node.js because we were using node for message streaming from HTTP to kafka to be processed by our downstream services. A few months after that, we stopped using node for new projects so we started using the library less. I still supported it as best I could, and we had still had existing services that used it that were made better with every release!

About 6 months ago I moved to another team that doesn't use any node.js, and the amount of time I've had to commit on this repository has gone to its lowest ever. This would be more OK, but my free weekend-time has also been at an all time low.

So, this has all been a long way of saying I need help! I'd like to give some of the responsibility for the management of this project to some of you. If you are interested at all please email me at sparente@blizzard.com!

I'm hoping to get more active again as best I can to give this project the support it deserves. There's a lot of work to be done on it to make it even better! If that excites you, send me an email!

Thank you everyone for your continued patience. Its totally undeserved, but appreciated :)

JaapRood commented 5 years ago

I think I speak on behalf of a lot of people to say: 🎉thank you for all your effort so far and in the future❤️! So many people, including myself personally and my team professionally, have benefited from all of your hard work, getting this setup in the first place.

I really hope someone with experience in both C++ and Node is willing to take on a contributor role, as especially for high-throughput cases it's hard to beat binding with the excellent librdkafka. Are there any companies / teams out there (apart from Blizzard) with these skillsets that use node-rdkafka to run any production services?

Unfortunately, that excludes myself, as all my C++ experience is just reading and hacking some other people's code. We're only a 2 person indie team, so lacking the resources to address the issues the project has been facing as of late. It pushed us towards adopting a client written 100% in JS for all new stream processing tasks, but without any of the luxuries of librdkafka's throughput, streams, near-mirrored consumer API's, etc.

rusty0412 commented 5 years ago

What kind of help do you need? Do you have a roadmap of things to improve, modernize? Do you know of bottlenecks that need to be optimized? Would you be open to dropping support for unsupported node releases (<8.0)? Would you be open to modernizing tooling (TypeScript, eslint, prettier commit hooks)?

webmakersteve commented 5 years ago

@rusty0412

There isn't specifically a road-map. So far there has been very little process involved in what we are upgrading or doing at any given time. Previously it was driven by what I was having to work with at the time (since I was actually using the library), but nowadays I've done very little to actually push the library forward and rely on just merging PRs that come in and providing feedback.

Here is what I'd like to see done in the future:

  1. Drop all support for < 8
  2. Add promise compatible APIs for async functions, or just an easy Promisify wrapper available to wrap all the method calls so they can be used with async await
  3. Upgrade NAN and get rid of all of the deprecations we have. This is a pretty big effort as the async worker handling has been hugely changed.
  4. A lot of C++ refactoring - the code is very old and looks it. There is a lot of stuff that can be consolidated to reduce the huge amount of sprawl.
  5. Get rid of the bundled librdkafka as part of the base package in favor of having a dependency on it being provided as a shared library in the box. I can be convinced that this is a bad idea, but so many of the problems with this library deal with the fact that it is built from source at install time.
  6. First-class typescript support
  7. A lot of CI improvements. Maybe migrate to circle CI? But mainly I want the builder to publish the package on every master build with pre-release tags and auto publish tagged builds.
  8. Better testing. Need to make a mocked version of the thin librdkafka classes and inject those around.
  9. Continue implementing new features of librdkafka. There are ways we can do FD polling for more efficient consumption in streams, etc.

If this sounds interesting to you, let me know! But I can also announce that I've added @iradul, @ankon , and @codeburke as collaborators, so thank you guys for volunteering! I appreciate all the help.

codeburke commented 5 years ago

Looking forward to collaborating on this project @webmakersteve, @iradul, @ankon!

I'm not going to be much help in the C/C++ world, but willing to help how I can. I can definitely start chipping away on some modernization efforts like dropping <8 support, async/await/Promise support, and improvements to CI. Seems like we should open an Issue for each of these to start discussion about what we are planning on changing and let people provide feedback/PRs.

iradul commented 5 years ago

But I can also announce that I've added @iradul, @ankon , and @codeburke as collaborators, so thank you guys for volunteering! I appreciate all the help.

Thank you for adding us to the team!

  1. First-class typescript support

Should we consider rewriting the whole project in TypeScript? I think that would bring huge benefits.

Also, it might be helpful if we start using Projects feature to manage and track progress of all the things you'd like to see done in the future.

IdanAdar commented 5 years ago

@webmakersteve I think the first thing needed is a more direct line of communication; getting replies is very sporadic and puts the package at high risk. For example right now it's just broken in 2.71, but there's no quick way to reach you - since there is no one else, or very very few, who can merge and kick off new releases - so teams around the world that rely on this package must wait for long period of time. We need to communicate. Lets solve this first.

How about a gitter channel? I've created this: https://gitter.im/node-rdkafka/community Lets join.

codeburke commented 5 years ago

Good to meet you Ivan!

Love the idea of using Project to help coordinate bigger changes.

I’d love to hear the advantages of entirely Typescript. Personally I’m not sold on “strong typing” on the internals of a project, but would love to look into how to use Typescript more consistently on all the public interfaces. Working on interface definitions and getting those linked to documentation seems like a big win for the users. I know that I’ve had to sift through the source code to understand some apis recently.

Ryan

On Thu, Jul 25, 2019 at 2:09 PM Idan Adar notifications@github.com wrote:

I think the first thing needed is a more direct line of communication; getting replies is very sporadic and puts the package at high risk. For example right now it's just broken in 2.71, but there's no quick way to reach you - since there is no one else who can merge - so teams around the world that rely on this package must wait for long period of time. We need to communicate. Lets solve this first.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628?email_source=notifications&email_token=AA4MURHFXV53AFNLUOYVS5DQBH257A5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD22PKXY#issuecomment-515175775, or mute the thread https://github.com/notifications/unsubscribe-auth/AA4MURGGPWVURXKADNDPZG3QBH257ANCNFSM4HSXN6UA .

SoyYoRafa commented 5 years ago

Hi, I am interested in contributing to a TypeScript migration. This project has no need for any dynamic typing behavior and the library needs to be robust. Static type checking will drive robustness since it is a type of test. It will help contributors understand the code layout. TypeScript will allow the project to use more modern syntax than allowed by supported runtimes. It will also guarantee high quality, error-free typing declarations to library users. If it's not TypeScript native, the declarations and API will drift and become inconsistent.

codeburke commented 5 years ago

Forgive my naivety on Typescript for libraries. Will that mean that library users will all need to transpile? I can go along with moving to Typescript for the reasons you mentioned, as long as we support native ES6 syntax in the released assets. I don’t think that we want to require the library users to setup Typescript transpiling of their projects just to use node-rdkafka.

On Thu, Jul 25, 2019 at 10:24 PM Rafael Fernández notifications@github.com wrote:

Hi, I am interested in contributing to a TypeScript migration. This project has no need for any dynamic typing behavior and the library needs to be robust. Static type checking will drive robustness since it is a type of test. It will help contributor understand the code layout. It will allow the project to use more modern syntax than allowed by supported runtimes. TypeScript native would also guarantee high quality, error-free typing declarations to library users. If it's not native, the declarations and API will drift and become inconsistent.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628?email_source=notifications&email_token=AA4MURDHLC4BWRPP4ZP7RJTQBJU75A5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD23MF3A#issuecomment-515293932, or mute the thread https://github.com/notifications/unsubscribe-auth/AA4MURB7NJMTKBQI3KQFATTQBJU75ANCNFSM4HSXN6UA .

SoyYoRafa commented 5 years ago

Will that mean that library users will all need to transpile?

No. node-rdkafka's build script would invoke the TypeScript compiler. The TypeScript compiler would then generate javascript files and type declarations. node-rdkafka would publish the javascript files and type declarations files. Library users just run the javascript files, they are unaware the project is written in TypeScript. TypeScript users also run the javascript files but will use the generated type declaration files in their code.

Additionally, you can use syntax newer than es6 in TypeScript and configure the compiler to generate es6-compatible javascript. When each version of node gets deprecated, you just bump up the target in the TypeScript compiler config and you get the native code for that target.

JaapRood commented 5 years ago

From my experience to contributing to node-rdkafka, I'd have to underline this mention of @webmakersteve:

  1. Upgrade NAN and get rid of all of the deprecations we have. This is a pretty big effort as the async worker handling has been hugely changed.
  2. A lot of C++ refactoring - the code is very old and looks it. There is a lot of stuff that can be consolidated to reduce the huge amount of sprawl.
  3. Get rid of the bundled librdkafka as part of the base package in favor of having a dependency on it being provided as a shared library in the box. I can be convinced that this is a bad idea, but so many of the problems with this library deal with the fact that it is built from source at install time.

Those are the definitely the points causing a bunch of problems at the moment, the ones that have been causing stability issues thus far and threaten to do so even more in the future. The binding to librdkafka is what sets node-rdkafka apart with a unique value proposition: piggy backing of an very highly optimized native library that achieves order of magnitude higher throughput than the official Kafka client. That's the bit worth trying to save, imo.

It's not that the Javascript side couldn't do with some love, it definitely could. But if what you're looking for is a modern JS code base, Typescript support, Promise support, strong test suite and CI, I wonder if you're time is not better spent on the newer KafkaJS project, which already has all of those things and is at a high rate of further development and progress. It's what we as a tiny 2-person indie team had to move to, and since we don't have much C++/C expertise, it's 100% Node codebase makes our contributions a whole bunch easier and more productive.

That's not to say that I think node-rdkafka shouldn't be kept alive / revived, not at all! Given it's bindings to librdkafka I could see it as a simpler client that's useful if you need some really serious throughput; it could offer levels of performance hard to match with a fully Javascript-implemented client. But then the focus should at least be on that part, that unique strength. Otherwise, all we're doing is fragmenting the already small Node + Kafka ecosystem even further and just duplicating efforts :(

codeburke commented 5 years ago

Speaking for myself, the reason I focused on the JS portion was because that is where my skillset primarily resides and where I feel I could provide immediate progress. But I do 100% agree that the differentiator here is the use of librdkafka as the performant underlying implementation. As I mentioned, I'm more than happy to help where I can in the C++ layer, but would be good if someone with much more experience could help lead that design and guidance on implementation. Is that you Jaap?

I'm curious people's thoughts on moving toward N-API instead NAN? From what I understand that is the C++-binding layer for Node 8+.

Personally, I'm excited to get started working with ya'll to expand my knowledge in other areas and push this project forward.

Ryan

On Fri, Jul 26, 2019 at 3:19 AM Jaap van Hardeveld notifications@github.com wrote:

From my experience to contributing to node-rdkafka, I'd have to underline this mention of @webmakersteve https://github.com/webmakersteve:

  1. Upgrade NAN and get rid of all of the deprecations we have. This is a pretty big effort as the async worker handling has been hugely changed.
  2. A lot of C++ refactoring - the code is very old and looks it. There is a lot of stuff that can be consolidated to reduce the huge amount of sprawl.
  3. Get rid of the bundled librdkafka as part of the base package in favor of having a dependency on it being provided as a shared library in the box. I can be convinced that this is a bad idea, but so many of the problems with this library deal with the fact that it is built from source at install time.

Those are the definitely the points causing a bunch of problems at the moment, the ones that have been causing stability issues thus far and threaten to do so even more in the future. The binding to librdkafka is what sets node-rdkafka apart with a unique value proposition: piggy backing of an very highly optimized native library that achieves order of magnitude higher throughput than the official Kafka client. That's the bit worth trying to save, imo.

It's not that the Javascript side couldn't do with some love, it definitely could. But if what you're looking for is a modern JS code base, Typescript support, Promise support, strong test suite and CI, I wonder if you're time is not better spent on the newer KafkaJS project https://kafka.js.org/, which already has all of those things and is at a high rate of further development and progress. It's what we as a tiny 2-person indie team had to move to, and since we don't have much C++/C expertise, it's 100% Node codebase makes our contributions a whole bunch easier and more productive.

That's not to say that I think node-rdkafka shouldn't be kept alive / revived, not at all! Given it's bindings to librdkafka I could see it as a simpler client that's useful if you need some really serious throughput: it could offer levels of performance hard to match with a fully Javascript-implemented client. But then the focus should at least be on that part, that unique strength. Otherwise, all we're doing is fragmenting the already small Node + Kafka ecosystem even further and just duplicating efforts :(

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628?email_source=notifications&email_token=AA4MURFZF6UPRACGB7SSJ4DQBKXRTA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD233ZGY#issuecomment-515357851, or mute the thread https://github.com/notifications/unsubscribe-auth/AA4MURB6ZZ6FLZJ2RP246W3QBKXRTANCNFSM4HSXN6UA .

JaapRood commented 5 years ago

@codeburke unfortunately I can't be, through lack of experience with that side of the code base as well:

Unfortunately, that excludes myself, as all my C++ experience is just reading and hacking some other people's code. We're only a 2 person indie team, so lacking the resources to address the issues the project has been facing as of late.

SoyYoRafa commented 5 years ago

We can expect that users' runtimes will support N-API by January 2020 when Node 8 is deprecated. N-API guarantees API stability and ABI compatibility across major versions of node. So, moving to N-API has the big benefit of being able to compile node-rdkafka in node 10 and run it in future major versions of node (12, 14, etc) without recompiling the shared objects. As a result, I don't think upgrading NAN is worthwhile. Separately, we should use node-addon-api, not N-API directly. N-API is a low level C interface. node-addon-api is the C++, object oriented wrapper on N-API. So, around November/December would be a good time to start working on migrating to node-addon-api.

iradul commented 5 years ago

Thumbs up for N-API. Looks like it does support Node 8 according to this: https://nodejs.org/docs/latest/api/n-api.html#n_api_n_api_version_matrix Also, since librdkafka is a C library and N-API is C API it would make sense to use C API instead of N-API C++ wrapper.

SoyYoRafa commented 5 years ago

@iradul node-rdkafka uses the C++ api of librdkafka. NAN->node-addon-api is a simple mechanical change. NAN->N-API is a rewrite. N-API is marked experimental in node 8. I am not sure if its safe to use before node 8.11.2, when N-APIv3 was backported.

iradul commented 5 years ago

Mechanical change or not it's still a rewrite unless it can be done in some safe and automated way. I'm sure it would be somewhat easier to rewrite using N-API C++ wrapper but in a long run C API seems better choice because librdkafa is a C library and librdkafka C++ always lags behind it.

SoyYoRafa commented 5 years ago

Regardless of label, what I wanted to communicate was that NAN->node-addon-api is pretty simple. I have already done it. I did it manually but there is a conversion tool that automates a portion of the conversion, https://github.com/nodejs/node-addon-api/tree/master/tools.

Re: using the librdkafka C interface, we would have to build an object oriented wrapper on the librdkafka C API either in C++ or JavaScript/TS. Do you think it's more likely that this project will be ahead of librdkafka's own C++ wrapper or that this project lags the librdkafka C++ wrapper? Also, why not just contribute to librdkafka C++ wrapper?

IdanAdar commented 5 years ago

May I suggest opening an issue and moving the discussion to there? In this issue we need to find out who wants to collaborate and become an active, or at least more-available maintainer. Without this this package is going nowhere.

I am less proficient than you guys, but I can be highly available and utilize your expertise with the the more complicated PRs. Anyone else willing to chime in?

@webmakersteve It's also up to you to add more maintainers...

codeburke commented 5 years ago

+1

I think we should move all these major initiatives (Typescript, node 8+ only, NAN->N-API, C++ refactor, etc) to Issues and/or Project. That way we get maximum engagement and develop with library consumers input. Ideally we could have one collaborator/maintainer heading up each initiative just to keep it on track and accountable.

Ryan

On Sun, Jul 28, 2019 at 12:19 PM Idan Adar notifications@github.com wrote:

May I suggest opening an issue and moving the discussion to there? In this issue we need to find out who wants to collaborate and become an active, or at least more-available maintainer. Without this this package is going nowhere.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628?email_source=notifications&email_token=AA4MURCIJYB37CBJIWHHBB3QBXIKTA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD27CZSQ#issuecomment-515779786, or mute the thread https://github.com/notifications/unsubscribe-auth/AA4MURCV7ERWT2FJV6AWUODQBXIKTANCNFSM4HSXN6UA .

iradul commented 5 years ago

Do you think it's more likely that this project will be ahead of librdkafka's own C++ wrapper or that this project lags the librdkafka C++ wrapper? Also, why not just contribute to librdkafka C++ wrapper?

Yes, for example it happened with headers support. C library got it on Jan 4, 2018 and C++ on Nov 26, 2018.

davidtrihy commented 5 years ago

I'd be happy to lend support where I can, internally in our team we use this and I've got a good bit of experience in C/C++ although not so much in NAN and primarily my development language at the moment is NodeJS, it would be good to get some people on board for the NodeJS side of things and I could assist in the C++ side of things as much as I can.

codeburke commented 5 years ago

Hey ya'll,

Just wanted to resurrect this thread and see if there was any movement or plan (coordinated or otherwise)?

@Stephen Parente sparente@blizzard.com I see there are a few outstanding PRs. In particular there is one that is blocking node 12 testing and adoption that I'd personally love to see get merged and released for my own projects. Any chance you (or we) can get some of those PRs merged and 2.7.2 released?

Ryan

On Wed, Aug 7, 2019 at 7:11 AM David Trihy notifications@github.com wrote:

I'd be happy to lend support where I can, internally in our team we use this and I've got a good bit of experience in C/C++ although not so much in NAN and primarily my development language at the moment is NodeJS, it would be good to get some people on board for the NodeJS side of things and I could assist in the C++ side of things as much as I can.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628?email_source=notifications&email_token=AA4MURH5N7Z54FKPVBKBRR3QDK3WDA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3YF2NI#issuecomment-519068981, or mute the thread https://github.com/notifications/unsubscribe-auth/AA4MURED23XXEV2ZEODGB5DQDK3WDANCNFSM4HSXN6UA .

iradul commented 5 years ago

Just wanted to resurrect this thread and see if there was any movement or plan (coordinated or otherwise)?

It seems publishing to NPM is still a manual task, so I don't know if merging existing PRs would be helpful to anyone. I guess we're still waiting for @webmakersteve to coordinate us, collaborators.

codeburke commented 4 years ago

Looks like Ivan has some collaborator permissions now! Glad to see some progress in getting some more collaborators. Not sure who else has access, but either way we should start formalizing the list of things to start working on.

Ryan

On Thu, Sep 12, 2019 at 4:19 PM Ivan notifications@github.com wrote:

Just wanted to resurrect this thread and see if there was any movement or plan (coordinated or otherwise)?

It seems publishing to NPM is still a manual task, so I don't know if merging existing PRs would be helpful to anyone. I guess we're still waiting for @webmakersteve https://github.com/webmakersteve to coordinate us, collaborators.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628?email_source=notifications&email_token=AA4MURBBLW3HTKL3LF24CZLQJKW7JA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6TJMSY#issuecomment-531011147, or mute the thread https://github.com/notifications/unsubscribe-auth/AA4MURAHOTGAAX47NTOHNM3QJKW7JANCNFSM4HSXN6UA .

noderat commented 4 years ago

@Iradul Does this mean you also received permissions to publish a new release to npm?

iradul commented 4 years ago

No, there was something promising in .travis.yml but it turns out it's not working (#700)

uatuko commented 4 years ago

I really hope we can have maintainers with access to publish npm packages instead of having to create forks.

@iradul, have you been in contact with @webmakersteve recently? If there has been no response for a while maybe we should consider a fork to back as a community before everyone starts to fork and publish their own versions.

SoyYoRafa commented 4 years ago

I support a fork at this stage. 2019 has been a lost year for this repository.

Tapppi commented 4 years ago

Our company is also currently pondering what to do with our Kafka library usage, basically whether there is a fork the community will back or to migrate to the new KafkaJS project and accept lower performance. For this project it seems best to try and create a mainstream fork at this point.

uatuko commented 4 years ago

We've actually started migrating to KafkaJS. The maintainers and owner aren't responsive enough for this to be a production ready package anymore IMHO.

TypeScript has also been mentioned as a strong contender above, which makes me doubt the future sustainability of this package.

It's a shame a package like this goes stale and I'm more than happy to help out/support a fork with a sustainable roadmap. But since I posted my last comment 5 days ago there have been very little interest (and no response from maintainers or the owner). Does than mean only a handful are still interested in this package?

codeburke commented 4 years ago

From what I've seen there are quite a few users of this library that come out of the weeds. I think that this solution does offer the best and most standards-based solution for Node + Kafka (since it is based on librdkafka that support multiple other clients). I agree that it is a shame that we haven't been able to get ahold of @webmastersteve. Due to the Node 12 LTS release I do think it is time to start looking into a reputable fork of this project until we can resurrect it.

On Mon, Oct 28, 2019 at 6:01 AM Uditha Atukorala notifications@github.com wrote:

We've actually started migrating to KafkaJS. The maintainers and owner aren't responsive enough for this to be a production ready package anymore IMHO.

TypeScript has also been mentioned as a strong contender above, which makes me doubt the future sustainability of this package.

It's a shame a package like this goes stale and I'm more than happy to help out/support a fork with a sustainable roadmap. But since I posted my last comment 5 days ago there have been very little interest (and no response from maintainers or the owner). Does than mean only a handful are still interested in this package?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628?email_source=notifications&email_token=AA4MURASLADNLB6JY2IAYIDQQ3BA7A5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECMPRQI#issuecomment-546896065, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA4MURATHRFJE5GEJXQY4U3QQ3BA7ANCNFSM4HSXN6UA .

ramirlm commented 4 years ago

Awesome work here! I'll be glad to collaborate!

iradul commented 4 years ago

@iradul, have you been in contact with @webmakersteve recently?

Yes. He is very busy lately but he'll have some updates soon. Let's be patient guys!

iradul commented 4 years ago

Good news! We can now publish new versions via Travis. I've successfully published 2.7.4.

keith-chew commented 4 years ago

I have been testing the robustness of node-rdkafka and found some issues, which I reported here: https://github.com/edenhill/librdkafka/issues/2630 https://github.com/edenhill/librdkafka/issues/2631 https://github.com/edenhill/librdkafka/issues/2634 https://github.com/Blizzard/node-rdkafka/issues/705 https://github.com/Blizzard/node-rdkafka/issues/715

I have created a fork to support some of the issues above: https://github.com/keith-chew/node-rdkafka

Hope this will be of use for others as well.

majusko commented 4 years ago

I created an RxJs wrapper with Typescript using this library. I'm able to help with Typescript + Reactive support for this library and make it modern.

Check it out and if you are interested we can agree on some collaboration where I would merge this project with your amazing node-rdkafka :)

https://github.com/majusko/rx-kafka

giulliano-bueno commented 4 years ago

Hi, my company is using this library in a few projects and I and my team would like to contribute and maintain it. How could I become a collaborator, please?

iradul commented 4 years ago

Hi @giulliano-bueno. Great to have you! Only @webmakersteve can add collaborators but you are more than welcome to make contributions. I'll make sure all good PRs get merged.

anonimitoraf commented 3 years ago

Hey guys! I'm interested in supporting node ver 14.x.x since it has a bunch of good stuff like optional chaining and whatnot (also because it's an LTS)

I'll try make a start this weekend

anonimitoraf commented 3 years ago

Weirdly, node-rdkafka as it is, works for node 14.15.0 for me. Can anyone else confirm?

lxghtless commented 3 years ago

Has anyone started work on this one?

  1. Get rid of the bundled librdkafka as part of the base package in favor of having a dependency on it being provided as a shared library in the box. I can be convinced that this is a bad idea, but so many of the problems with this library deal with the fact that it is built from source at install time.
edenhill commented 3 years ago

Our librdkafka.redist nuget packages contains highly compatible librdkafka builds with most dependencies built in, these libs are what we bundle in the confluent-kafka-python, confluent-kafka-go and confluent-kafka-dotnet clients, so I'd advise to use and bundle those. https://www.nuget.org/packages/librdkafka.redist/

codeburke commented 3 years ago

Thanks Magnus! Sounds like we should do that for Node as well.

On Sat, Feb 6, 2021 at 6:01 PM Magnus Edenhill notifications@github.com wrote:

Our librdkafka.redist nuget packages contains highly compatible librdkafka builds with most dependencies built in, these libs are what we bundle in the confluent-kafka-python, confluent-kafka-go and confluent-kafka-dotnet clients, so I'd advise to use and bundle those. https://www.nuget.org/packages/librdkafka.redist/

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Blizzard/node-rdkafka/issues/628#issuecomment-774562753, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA4MURDL3L742U4NFK2HVGDS5XJ4FANCNFSM4HSXN6UA .

edenhill commented 3 years ago

FYI: https://github.com/edenhill/librdkafka/wiki/librdkafka.redist