In the next version of Bun Bun gets first-class support for S3. Upload, download, stream, and presign with 0 dependencies
@cirospaciari When you pass `new Response` an S3 file, it turns into a redirect to a presigned expiring URL so that you don't waste your server's resources downloading to S3 and sending to the user
@bunjavascript @cirospaciari Eek. Cool, but kinda feels weird to have vendor-specific APIs built into a runtime.
@bunjavascript @cirospaciari man i kinda love this but aren't you guys amassing a shit load of a maintenance hell hole at this point?
@bunjavascript @cirospaciari Hm. Making a core of a language integrate a commercial product makes no sense. This to get bun acquired by amazon?
@bunjavascript @cirospaciari the feature bloat train continues on. I don't want my runtime being responsible for something a vendor should be the source of truth for.
@bunjavascript @cirospaciari This is a great direction! Feels like the right step towards an opinionated bundle of libraries for building node apps and a good complement to the existing features like the sql lite client and hashing passwords
@bunjavascript @cirospaciari Would this include API’s for i.e. listing buckets or requesting metadata for an object via HEAD?
@bunjavascript @cirospaciari this is great news! already building my apps with almost zero dependencies in Bun, and now s3 dependencies gone, no more node_modules?!
@bunjavascript @cirospaciari Everyone needs to understand that s3 isn’t a service by aws, it’s THE api for object storage
@bunjavascript @cirospaciari Glad I didn’t go down the Bun route yet Totally idiotic take Implementing vendor bloat into a runtime 😭 Greetings, someone who uses S3 extensively
@bunjavascript @cirospaciari Can’t this be in a specific seperate bun package? I kinda understand why you wanna support it but Why 3rd party vendor directly through bun Can’t it be something like@bun/s3?
@bunjavascript @cirospaciari I feel like it should have a more generalized name re: object storage so that it doesn't feel like a vendored corp lib.
@bunjavascript Really wish I could understand the perspective behind the decision to add more and more extra functionality into Bun, while Node.js compatibility remains unsolved. What’s the point of all this when there are libraries even maintained by the vendors themselves. Just marketing?
@bunjavascript @cirospaciari When are you adding first class SMTP/MAPI support?
@bunjavascript @cirospaciari Shouldnt somethings stay in libraries? Apart from not having to install a library, what benefits would this bring?
@bunjavascript @cirospaciari hmm not too sure how i feel about this. why s3 specifically?
@bunjavascript @cirospaciari Should be a separate package imo
@bunjavascript @cirospaciari And this couldn't be a separate library why? This is baked into a javascript runtime why? Not a great indicator for Bun
@bunjavascript @cirospaciari This just sounds weird to have third party abstractions molded into a supposedly runtime...
@bunjavascript @cirospaciari What makes you decide what makes it into “should be a first class citizen”, s3 seems like an interesting choice that I’d want to hear the rationale behind
@bunjavascript @cirospaciari why tho? Is it really necessary? And how often can one expect bun's library to have parity?
@bunjavascript @cirospaciari This is kinda weird. A corporate feature in the language runtime?
@bunjavascript @cirospaciari Vendor locking much?
@bunjavascript @cirospaciari all in for cool runtimes, but wouldn't it cause significant issues in debugging something related to underlying s3 logic? things like this should be handled by separate pkgs IMO
@bunjavascript @cirospaciari Hey @jarredsumner , this is really cool! But as a Node dev for a long time, I was expecting @bunjavascript to go full focus on 1:1 compatibility. This is what is going to motivate people to move away from Node…
@bunjavascript @cirospaciari I love bun, but I am not a fan of introducing ultra-specific APIs into the core. If it is really something that is deemed necessary, it should exist in a separate package (e.g., "bun/s3").
@bunjavascript @cirospaciari I don’t have a good feeling about this…
@bunjavascript @cirospaciari Why would this ever be part of a standard library?
@bunjavascript @cirospaciari does it work without environment variable credentials? For example if an aws instance running bun has permission by assuming a role
@bunjavascript @cirospaciari Does it include AWS SDK defaults or options for retrying? We rely on this a lot.