https://workers.cloudflare.com/
2. Rust - definitely will be the next language I learn. Sadly the coronavirus cancelled a series of meetings in Michigan promising to give a gentle introduction to Rust.
https://workers.cloudflare.com/
2. Rust - definitely will be the next language I learn. Sadly the coronavirus cancelled a series of meetings in Michigan promising to give a gentle introduction to Rust.
article:1 -> {"user": 1, "content": "..."}
user:1 -> {"name": "username"}
user:1:articles -> [1, ...]postid:someid/text
postid:someid/author
etc.
the relation aspect doesnt daunts me. As long as I can have a list/collection as a value, i can define a working schema.
I am more worried about if its costlier than normal dbs. and if there are any other gotchas to keep in mind as kv workers have scant documentation.
You should also consider how you intend to backup the data as there currently isn't a process to do that outside of writing something yourself to periodically download the keys. This will add to your usage cost depending on what your strategy is, for example, backing up old keys that gets updated vs only new keys by keeping track of the cursor.
Excuse my ignorance & N00Bness, but are they essentially a Cloudfare version of AWS Lambdas, Google Cloud Functions and Netlify functions, or are they something different/better?
[0]: https://blog.cloudflare.com/cloud-computing-without-containe...
They have vastly more pops than Amazon, so global performance for these is on a different level. But they are also more limited in compute and serve a slightly different purpose.
- I use imgix to manipulate images in my app, but some of my users don't want anyone to be able to discover (and steal) the source images. Imgix can't do this natively; all image manipulation instructions are in the URL. So I put a CF worker in front of imgix; my app encrypts the url, the worker decrypts it and proxies.
- A year ago, intercom.io didn't support permissions on their KB articles system. I like intercom's articles but (at the time) wanted to restrict them to actual customers. So I put a CF worker in front that gates based on a cookie set by my app.
These are both trivial, stateless 5-line scripts. I like that I can use CF workers to fundamentally change the behavior of hosted services I rely on. It's almost like being able to edit their code.
Of course, this only works for hosted services that work with custom domains.
Might be against their terms? I rem someone asked if they could treat Workers as a http reverse-proxy to essentially bypass restrictions, and the answer was "no".
Would it be possible to share these scripts? I would love to see them, they sound really helpful/useful
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const cookie = request.headers.get('Cookie');
if (cookie && cookie.includes('foo=bar')) {
return await fetch(request);
} else {
return new Response('You must log in before accessing this content');
}
}
The encrypted URL script is actually a bit longer than "5 lines" (it has been a while) so here's a gist:https://gist.github.com/stickfigure/af592b1ce7f888c5b8a4efbe...
Go was designed to be easy to use for un-demanding problems. People mostly switch to Go from Ruby, Python, or Java; or from C in places where C was an unfortunate choice to begin with.
Rust is gunning for C++ territory, in places where the greater expressiveness of C++ is not needed or, in cases, not welcome. They would like to displace C (and the world would be a better place if that happened) but people still using C at this late date will typically be the last to adopt Rust.
All these languages are Turing-complete. The difference is in how much work it is to design and write the program, and in whether it can satisfy performance needs.
C++ wins here by being more expressive, making it better able to implement libraries that can be used in all cases. Rust is less capable, but stronger than other mainstream languages.