Comments (21)
What is the problem with requiring a large shard? It will all live under 1 namespace so there's no more namespace pollution and it should have practically no impact on compile times. A large amount of the standard library is required in every crystal program but what effects compile times is the amount of that required API surface you use.
However, the benefits of using a monorepo (easier to maintain and keep internally consistent) seem clear to me. Even as a user i'd much rather require "aws" instead of each individual service I use.
from crystal-libraries-needed.
Might be good to have all of the AWS libraries in one place as well (at least until AWS officially supports and perhaps takes it over). Maybe in the crystal-community GitHub org or a new crystal-aws org.
Making all of AWS readily available in high-quality shards is definitely something that will push the Crystal community forward. So many people depend on AWS for their daily jobs.
from crystal-libraries-needed.
If the human body didn't require sleep, I would totally volunteer to help with this 😆
from crystal-libraries-needed.
understood @RX14, it may well wind up that way ... im only 1 vote, if however someone wants to write an AWS signer, and someone else wants to write a fully S3 implementation (which i think is the likely course of events) im not inclined to force people into a collaboration and decision by commitee if you follow my logic ... not that im in any position to do any forcing, just to be clear ;-)
from crystal-libraries-needed.
i would suggest one core / common shard, then shards for each service ...
from crystal-libraries-needed.
It would be cool to see crystal on this list: https://aws.amazon.com/tools/
It appears though, that all of the SKD's are maintained by AWS with the exception of the Python boto library.
I wonder if there are any considerations that would need to be followed before they would list it.
from crystal-libraries-needed.
@fridgerator totally agree, although we need to create something before getting it listed ;-) ... hands up who wants to manage this ticket :-)
from crystal-libraries-needed.
oh boy do i know what you mean
from crystal-libraries-needed.
I don't think seperate shards are really required, it's easier to maintain and keep the interface consistent working in 1 repo. And having unused methods has little effect on compile times
from crystal-libraries-needed.
@RX14 its really only a practical consideration, we arent going to be able to deliver a complete shard at this time (or probably anytime soon), so if we can break it up and get each bit feature complete and tested then we can combine them at a later date
from crystal-libraries-needed.
@johnjansen I don't really see why incremental PRs can't be landed in a shared repository. That being said i'm not willing to work on it so I don't have much of a say!
from crystal-libraries-needed.
Personally as long as we have an API a wrapper probably isn't really needed at this point. For instance if we wrote a carrierwave alternative we could just build in the parts we needed to interface with the api then. Eventually it would probably be useful but my experience from ruby is that using a gem wrapper often isn't easier than just hitting the api and you only need to read one set of docs that way.
from crystal-libraries-needed.
I'd vote for smaller shards, so that the specific parts of the API can be used by other packages easily, without having to require a huge monorepo. For example, a simple S3 integration could be used as part of something like Flysystem which I would love to see in Crystal.
from crystal-libraries-needed.
agreed @molovo ...
from crystal-libraries-needed.
one problem right now, is when trying to access AWS api on MAC, I always get this error: Anyone else get this?
<?xml version="1.0" encoding="UTF-8"?><Error><Code>HttpVersionNotSupported</Code><Message>The HTTP version specified is not supported.</Message><RequestId>2750C2CAA689256F</RequestId><HostId>xxxx</HostId></Error>
I'm using this right now: https://github.com/taylorfinnell/awscr-signer
I'm just assuming regardless of the shard, this error will persist
from crystal-libraries-needed.
@fridgerator How are the filenames formatted? Might need to url-encode them before uploading.
from crystal-libraries-needed.
Oh sorry, this is retrieving a signed url for a file from S3 using HTTP::Client
from crystal-libraries-needed.
Hi guys, any progress with the AWS shard?
Is there a progress going on somewhere? Would love to take part.
from crystal-libraries-needed.
@omerxx I don't think so. You can find some here http://crystalshards.xyz/?filter=aws. I'm using some AWS stuff in my projects, but none of it has been abstracted to a shard yet.
from crystal-libraries-needed.
Stumbled across: https://github.com/sdogruyol/aws
from crystal-libraries-needed.
Yeah, I think this can be closed. There's a few options out there now for some basic stuff.
from crystal-libraries-needed.
Related Issues (20)
- walkdir library HOT 7
- Web scraper HOT 3
- Suggestion: port gem mimemagic from Ruby for significant (and fully platform agnostic) MIME type coverage
- Push notification service
- Port of impersonator gem
- fastimage shard HOT 3
- XMPP / Jabber client shard HOT 2
- Font renderer HOT 7
- Relational Algebra
- Math parser / evaluator HOT 6
- Flashtext port
- Tokyo Tyrant (Tokyo Cabinet server) HOT 4
- Python to Crystal converter HOT 3
- Data-parallelism library
- Algorithmic Trading Library
- integration with a browser recording library: playwright library / puppeteer library / something similar HOT 5
- A rewrite of Centrifuge use crystal
- Kubernetes API HOT 2
- RDF library
- HAML templating Shard HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crystal-libraries-needed.