spawner
workers-sdk
spawner | workers-sdk | |
---|---|---|
6 | 27 | |
451 | 2,266 | |
- | 4.1% | |
9.0 | 9.9 | |
over 1 year ago | about 4 hours ago | |
Rust | TypeScript | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
spawner
-
Container + SSH = a good development environment
For the “jhub but for any container that speaks HTTP” use case, you might find our Spawner project interesting: https://github.com/drifting-in-space/spawner
We don’t have a good story for volumes yet, but I’m open to ideas.
-
Are V8 isolates the future of computing?
Is the appeal of isolates in this case the cold start time or the isolation? We're working on some open source infrastructure for running sandboxed (gVisor) containers on the fly from web services[1], and one of the use cases people have is serving Jupyter notebooks which seems like it might resemble your use case?
[1] https://github.com/drifting-in-space/spawner/
-
Fly Machines: An API for Fast-Booting VMs
yes! a fellow HN user e-mailed me about his project "Spawner"
https://github.com/drifting-in-space/spawner
check out the demo: https://www.youtube.com/watch?v=aGsxxcQRKa4
-
Ask HN: Who is hiring? (May 2022)
Drifting in Space | Full-time | NYC | https://driftingin.space
We make Jamsocket (https://jamsocket.com/), which allows application developers to spin up and connect to server-side compute. This allows browser-based applications to do computationally-intensive things that are otherwise impossible in the browser.
We went through YC and just raised a seed round and are looking to build up our team. We are based in NYC but are open to remote for experience candidates.
Our tech stack includes Rust, NATS, Docker, Postgres, TypeScript. We have lots of fun technical problems that get into the nitty-gritty of networking and operating systems. We are excited to build a diverse team and encourage non-traditional candidates to apply.
Email [email protected] or see more details here: https://www.ycombinator.com/companies/drifting-in-space/jobs...
-
Launch HN: Drifting in Space (YC W22) – A server process for every user
Hi HN, we’re Paul and Taylor, and we’re launching Drifting in Space (https://driftingin.space). We build server software for performance-intensive browser-based applications. We make it easy to give every user of your app a dedicated server-side process, which starts when they open your application and stops when they close the tab.
Many high-end web apps give every user a dedicated connection to a server-side process. That is how they get the low latency that you need for ambitious products like full-fledged video editing tools and IDEs. This is hard for smaller teams to recreate, though, because it takes a significant ongoing engineering investment. That’s where we come in—we make this architecture available to everyone, so you can focus on your app instead of its infrastructure. You can think of it like Heroku, except that each of your users gets their own server instance.
I realized that something like this was needed while working on data-intensive tools at a hedge fund. I noticed that almost all new application software, whether it was built in-house or third-party SaaS, was delivered as a browser application rather than native. Although browsers are more powerful than ever, I knew from experience that industrial-scale data-heavy apps posed problems, because neither the browser or a traditional stateless server architecture could provide the compute resources needed for low-latency interaction with large datasets. I began talking about this with my friend Taylor, who had encountered similar limitations while working on data analysis and visualization tools at Datadog and Uber. We decided to team up and build a company around solving it.
We have two products, an open source package and a managed platform. Spawner, the open source part, provides an API for web apps to spawn a session-lived process. It manages the process’s lifecycle, exposing it over HTTPS, tracking inbound connections, and shutting it down when it becomes idle (i.e. when the user closes their tab). It’s open source (MIT) and available at https://github.com/drifting-in-space/spawner.
Jamsocket is our managed platform, which uses Spawner internally. It provides the same API, but frees you from having to deal with any cluster or network configuration to ship code. From an app developer’s point of view, using it is similar to using platforms like Netlify or Render. You stay in the web stack and never have to touch Kubernetes.
Here's an example. Imagine you make an application for investigating fraud in a large transaction database. Users want to interactively filter, aggregate, and visualize gigabytes of transactions as a graph. Instead of sending all of the data down to the browser and doing the work there, you would put your code in a container and upload it to our platform. Then, whenever a fraud analyst opens your application, you hit an API we provide to spin up a dedicated backend for that analyst. Your browser code then opens a WebSocket connection directly to that backend, which it uses to stream data as the analyst applies filters or zooms/pans the visualization.
We're different from most managed platforms because we give each user a dedicated process. That said, there are a few other services that do run long-lived processes for each user. Architecturally, we're most similar to Agones. Agones is targeted at games where the client can speak UDP to an arbitrary IP; we target applications that want to connect directly from browsers to a hostname over HTTPS. In the Erlang world, the OTP stack provides similar functionality, but you have to embrace Erlang/Elixir to get the benefits of it; we are entirely language-agnostic. Cloudflare Durable Objects support a form of long-lived processes, but are focused on use cases around program state synchronization rather than arbitrary high-compute/memory use cases.
We have a usage-based billing model, similar to Heroku. We charge you for the compute you use and take a cut. Usage billing scales to zero, so it’s approachable for weekend experiments. We have not solidified a price plan yet, but we’re aiming to provide an instance capable of running VS Code (as an example) for about 10 cents an hour, fractionally metered. High-memory and high-CPU backends will cost more, and heavy users will get volume discounts. Our target customers are desktop-like SaaS apps and internal data tools.
As mentioned, our core API is open source and available at https://github.com/drifting-in-space/spawner. The managed platform is in beta and we’re currently onboarding users from a waitlist, to make sure that we have the server capacity to scale. If you’re interested, you’re welcome to sign up for it here: https://driftingin.space.
Have you built a similar infrastructure for your application? We’re always interested in hearing the approaches people have already taken to this problem and learning what their pain points are.
workers-sdk
-
Discord Bot with Cloudflare AI
Workers
-
Ask HN: Best thing you've made in CLI
https://github.com/cloudflare/workers-sdk/blob/main/packages...
-
Developing your own Chrome Extension - Fetch with a Proxy and Cloudflare Workers (Part 5)
The Wrangler, Cloudflare's Developer Platform command-line interface (CLI), allows you to manage Worker projects and has an in-built Miniflare, which runs an HTTP server.
-
Crafting Observable Cloudflare Workers with OpenTelemetry
/** * Welcome to Cloudflare Workers! This is your first worker. * * - Run `npm run dev` in your terminal to start a development server * - Open a browser tab at http://localhost:8787/ to see your worker in action * - Run `npm run deploy` to publish your worker * * Learn more at https://developers.cloudflare.com/workers/ */ export interface Env { // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/ // MY_KV_NAMESPACE: KVNamespace; // // Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/ // MY_DURABLE_OBJECT: DurableObjectNamespace; // // Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/ // MY_BUCKET: R2Bucket; // // Example binding to a Service. Learn more at https://developers.cloudflare.com/workers/runtime-apis/service-bindings/ // MY_SERVICE: Fetcher; // // Example binding to a Queue. Learn more at https://developers.cloudflare.com/queues/javascript-apis/ // MY_QUEUE: Queue; } export default { async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise { return new Response('Hello World!'); }, };
-
Drastically Cut CI Time in an Nx Monorepo with Remote Task Caching: A Step-by-Step Guide
$ npm create cloudflare@latest using create-cloudflare version 2.9.0 ╭ Create an application with Cloudflare Step 1 of 3 │ ├ In which directory do you want to create your application? │ dir ./apps/worker │ ├ What type of application do you want to create? │ type "Hello World" Worker │ ├ Do you want to use TypeScript? │ yes typescript │ ├ Copying files from "hello-world" template │ ├ Retrieving current workerd compatibility date │ compatibility date 2023-12-18 │ ╰ Application created ╭ Installing dependencies Step 2 of 3 │ ├ Installing dependencies │ installed via `npm install` │ ├ Installing @cloudflare/workers-types │ installed via npm │ ├ Adding latest types to `tsconfig.json` │ skipped couldn't find latest compatible version of @cloudflare/workers-types │ ╰ Dependencies Installed ╭ Deploy with Cloudflare Step 3 of 3 │ ├ Do you want to deploy your application? │ no deploy via `npm run deploy` │ ├ APPLICATION CREATED Deploy your application with npm run deploy │ │ Navigate to the new directory cd apps/worker │ Run the development server npm run start │ Deploy your application npm run deploy │ Read the documentation https://developers.cloudflare.com/workers │ Stuck? Join us at https://discord.gg/cloudflaredev │ ╰ See you again soon!
-
One Worker to Track Them All: Injecting Analytics Scripts into Multiple Websites with Cloudflare Workers
Except that there is. Cloudflare is pretty great for free SSL certificates and DNS management, but they also offer a free Workers plan. A Cloudflare worker is basically JavaScript code that runs on Cloudflare's edge network and handles HTTP traffic. You can do a lot with workers, including modifying/rewriting HTML responses. You can probably see where this is going: If a worker can modify HTML responses, then it can inject the umami script into every HTML response.
-
Implementing Authorization with Clerk in a tRPC app running on a Cloudflare Worker
Cloudflare Workers
-
D1: We turned it up to 11
And what about the DX of using Workers with Pages?
I tried to use that recently and it was a disaster. I wrote about my experience here:
https://twitter.com/pierbover/status/1641474067013271552
I then opened these two issues:
https://github.com/cloudflare/workers-sdk/issues/2962
https://github.com/cloudflare/workers-sdk/issues/2964
I ended up moving the project over to Netlify + Edge functions. I had it all working in like 5-10 mins as it should. Took me two hours to figure out why Workers weren't working in my Pages project, and could never get Workers working properly with my Astro project.
I think you're working exclusively on the engine of Workers which is really top notch, but Cloudflare really needs to improve the outer layer which affects DX considerably.
- Cloudflare Workers: Solusi serverless edge function termudah, tercepat, termurah, what else..?
-
[HELP] can't deploy my program to cloudflare worker.
If you think this is a bug, please open an issue at: https://github.com/cloudflare/workers-sdk/issues/new/choose ```
What are some alternatives?
splitter - React component for building split views like in VS Code
cloudflare-form-service - A form handling service built using Cloudflare Workers for jamstack websites and apps.
stateroom - A lightweight framework for building WebSocket-based application backends.
Docusaurus - Easy to maintain open source documentation websites.
blueboat - All-in-one, multi-tenant serverless JavaScript runtime.
wizer - The WebAssembly Pre-Initializer
Next.js - The React Framework
ContainerSSH - ContainerSSH: Launch containers on demand
kysely - A type-safe typescript SQL query builder
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
website - pglet website