I’m really pleased to see you reaching out to the community to ask for help. This is a huge project that a lot of companies rely on, I’m sure you’ll get somebody stepping up.
I’ll be linking this to a couple people.
I’m really pleased to see you reaching out to the community to ask for help. This is a huge project that a lot of companies rely on, I’m sure you’ll get somebody stepping up.
I’ll be linking this to a couple people.
Just to point out my disappointment with choice of mascot. Due to name I think that Opossum would be much better choice (in my language it is called just “opos”).
Hiya Ben,
Since I’m already a committer on ExAws.SNS
and a heavy user of several other service modules, I would definitely be interested in seeing what my team and I can to support ExAws
as well. We’re heavily committed to open source and always looking for ways to contribute back, and this might be a good fit for us.
That includes one or more of us taking on the role of Maintainer if we can swing it, but it would help to have some idea of the number/frequency of pull requests, issues, support needs, etc. so that I can make a case to my supervisor(s) that it would be a worthwhile thing for us to devote some time to.
Hi ben,
I’ve been a long time user of ExAws, and so have a few other people at my company. We’d be potentially interested in helping out with this as well (our company is be more than willing to help with supporting open source projects)
Feel free to contact me if you still need help and want to discuss more
Hi Ben,
I am also happy to assist where possible. Although I work for AWS and love Elixir, I am not a developer anymore (Solutions Architect) - so my productivity would be low. However, hopefully between all of us in the community, we can keep this amazing library healthy.
I have not looked into the code, but most of the other 3rd party libraries generate code from one one of the official SDK, and that allows for easy upgrades as the API moves forward. I am guessing that is not the approach taken with ExAws? For example: https://github.com/inhabitedtype/ocaml-aws
What’s the status of this? Did anyone step up to maintain this project?
Hey everyone. I received a lot of supportive comments from people, and for that I’m very grateful. Unfortunately, all of the comments took some version of the form of “I’d be happy to contribute some, but I don’t have the time to run the project”. To be clear, I think this is a perfectly sensible answer, after all it is basically my answer here. However I’m really not looking for contributors, I’m looking to be done with this project. Also, the more I’ve looked at the project, the more I think it has certain fatal flaws in its approach, and the right course of action isn’t to keep pushing forward in this direction but rather find a new one.
Thus, my current inclination is to simply deprecate ExAws entirely, and advocate that someone write a replacement.
A replacement could utilize the patterns in ExAws that I think are good, while also aiming to auto-generate functionality as people tend to do in other languages with AWS libraries. The bits that are worth keeping from an approach perspective is:
Aws.S3.list_objects
actually doing the request, have it return a data structure that you pass to a function that actually executes it. This allows much much easier interop with other libraries.Areas where a new library could improve:
There is Erlang library that does that already. Maybe it could be improved to support pluggable HTTP clients and stuff like that.
EDIT:
It seems that it also has Elixir implementation. Additionally there is erlcloud
which also seems pretty active. You could point to these libraries as a potential replacements.
Do you have any recommendations on potential replacements that are already developed or partially developed?
Right now one of the most popular file upload libraries for Phoenix (Waffle) depends on ExAws for saving files to S3. I wonder if the author of that library is on the forums. It’s a pretty big hit to lose that library since file uploads (especially to S3) is so popular.
I am still working on article how to manage uploads to S3 without ExAws or Waffle
Is it possible in your opinion (of course it is, but without too much hoops and headaches) to make calls directly to the AWS API without ExAWS? Is this something you would recommend?
While implementing S3 uploads, I was able to forgo using Waffle and while doing so wondered if I could do without ExAws?
I lot of times with Elixir I find that I can do things without libraries (as opposed to JS which seems to need NPM install for the most minute things). I like this approach.
There are several aspects about interacting with AWS that are difficult to do without a library:
Request signing. This is the big one. ExAws has several hundred lines of code dedicated to formatting and signing the parameters according to the AWS signing guidelines. Without this, you can’t make any requests to any AWS service. Copying and pasting these lines into each application or library that wants to talk to AWS is super error prone, since any bug fixes or updates to that code won’t be distributed.
Credential management. AWS credentials need to be retrieved via several different mechanisms, and people depend on that working the same way across various services and languages.
Those are really the big ones. There are other benefits to a dedicated library, like handling header boilerplate, or various convenience functions around clunky APIs, but doing AWS request signing and credential management without the help of a library is likely to result in bugs.
That said, perhaps those bits could be extracted (or maybe already exist) as their own library.
I assume you tried some approaches which didn’t work out. Would you like to shed some light on what you tried and why it didn’t work out?
I saw ExAws in a separate thread. I’m a newbie to elixir; I’ve a small application in production and I’m reading a lot as well. I would like to know if I can be off any help. I’m sure with a bit of guidance and code review I can contribute my quota to the elixir ecosystem. I really love the language and would be glad if I can contribute. Thank you.
Hey everyone.
I really do appreciate the outpouring of support. If all that was needed to move forward with the library was willing and helpful people then the project would be in great hands.
However what the community really needs is someone who has the time and vision to re-imagine how to do an AWS client from the ground up. ExAws’s approach places far too high a burden on maintainers to keep everything up to date.
CargoSense has officially moved off of AWS to GCP, which seems like the right time to declare what is already true: ExAws is deprecated and will not receive further updates.
Thanks to all of you who have put time and effort into it over the years. I’m sure the next library will benefit from that same interest and passion.
Updating this thread to acknowledge that someone stepped up as maintainer: https://github.com/ex-aws/ex_aws/commit/2dff9bc41ad57e7912b73cfd21341d8797d4acd0
yup! Bernard and I had a great chat earlier this week, I’m definitely excited about the future of the project. Maybe a mod can close this out at this point?