-
Notifications
You must be signed in to change notification settings - Fork 396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Looking for more Collaborators! #628
Comments
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 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 |
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)? |
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:
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. |
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, |
Thank you for adding us to the team!
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. |
@webmakersteve How about a gitter channel? I've created this: https://gitter.im/node-rdkafka/community |
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 ***@***.***> 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
<#628?email_source=notifications&email_token=AA4MURHFXV53AFNLUOYVS5DQBH257A5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD22PKXY#issuecomment-515175775>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA4MURGGPWVURXKADNDPZG3QBH257ANCNFSM4HSXN6UA>
.
|
Hi, |
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 ***@***.***> 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
<#628?email_source=notifications&email_token=AA4MURDHLC4BWRPP4ZP7RJTQBJU75A5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD23MF3A#issuecomment-515293932>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA4MURB7NJMTKBQI3KQFATTQBJU75ANCNFSM4HSXN6UA>
.
|
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. |
From my experience to contributing to node-rdkafka, I'd have to underline this mention of @webmakersteve:
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 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 |
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 ***@***.***> 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
<#628?email_source=notifications&email_token=AA4MURFZF6UPRACGB7SSJ4DQBKXRTA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD233ZGY#issuecomment-515357851>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA4MURB6ZZ6FLZJ2RP246W3QBKXRTANCNFSM4HSXN6UA>
.
|
@codeburke unfortunately I can't be, through lack of experience with that side of the code base as well:
|
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. |
Thumbs up for N-API. Looks like it does support Node 8 according to this: |
@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. |
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. |
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? |
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... |
+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 ***@***.***> 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
<#628?email_source=notifications&email_token=AA4MURCIJYB37CBJIWHHBB3QBXIKTA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD27CZSQ#issuecomment-515779786>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA4MURCV7ERWT2FJV6AWUODQBXIKTANCNFSM4HSXN6UA>
.
|
Yes, for example it happened with headers support. C library got it on Jan 4, 2018 and C++ on Nov 26, 2018. |
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. |
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 ***@***.***> 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
<#628?email_source=notifications&email_token=AA4MURH5N7Z54FKPVBKBRR3QDK3WDA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3YF2NI#issuecomment-519068981>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA4MURED23XXEV2ZEODGB5DQDK3WDANCNFSM4HSXN6UA>
.
|
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. |
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 ***@***.***> 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
<#628?email_source=notifications&email_token=AA4MURBBLW3HTKL3LF24CZLQJKW7JA5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6TJMSY#issuecomment-531011147>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA4MURAHOTGAAX47NTOHNM3QJKW7JANCNFSM4HSXN6UA>
.
|
@iradul Does this mean you also received permissions to publish a new release to npm? |
No, there was something promising in |
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. |
I support a fork at this stage. 2019 has been a lost year for this repository. |
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. |
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? |
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 ***@***.***> 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
<#628?email_source=notifications&email_token=AA4MURASLADNLB6JY2IAYIDQQ3BA7A5CNFSM4HSXN6UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECMPRQI#issuecomment-546896065>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AA4MURATHRFJE5GEJXQY4U3QQ3BA7ANCNFSM4HSXN6UA>
.
|
Awesome work here! I'll be glad to collaborate! |
Yes. He is very busy lately but he'll have some updates soon. Let's be patient guys! |
Good news! We can now publish new versions via Travis. I've successfully published |
I have been testing the robustness of node-rdkafka and found some issues, which I reported here: I have created a fork to support some of the issues above: Hope this will be of use for others as well. |
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 :) |
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? |
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. |
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 |
Weirdly, node-rdkafka as it is, works for node 14.15.0 for me. Can anyone else confirm? |
Has anyone started work on this one?
|
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. |
Thanks Magnus! Sounds like we should do that for Node as well.
…On Sat, Feb 6, 2021 at 6:01 PM Magnus Edenhill ***@***.***> 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
<#628 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AA4MURDL3L742U4NFK2HVGDS5XJ4FANCNFSM4HSXN6UA>
.
|
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 :)
The text was updated successfully, but these errors were encountered: