An open API service indexing awesome lists of open source software.

https://github.com/andrewvy/chromesmith

[in constant flux] Elixir library for forging distributed workloads across headless chrome workers
https://github.com/andrewvy/chromesmith

elixir headless-chrome pool

Last synced: over 1 year ago
JSON representation

[in constant flux] Elixir library for forging distributed workloads across headless chrome workers

Awesome Lists containing this project

README

          

# chromesmith

:construction: [WIP]

Higher-level library for forging distributing workloads across an army of headless chrome workers.

Provides a higher-level DSL on top of [chrome-remote-interface](https://github.com/andrewvy/chrome-remote-interface),
and manages headless chrome processes with [chrome-launcher](https://github.com/andrewvy/chrome-launcher).

---

> Usage

*chromesmith* handles pooling page sessions and distributing work across them. You can configure this pool or use
the default configuration. It's highly recommended you tune your configuration to your runtime environment to
make best use of your resources.

> Add Chromesmith to your application supervision tree.

Use `Chromesmith.child_spec/2` to create the child specification to be put in your application's supervisor.

See [here](#) for configuration options.

```elixir
defmodule MyApp.Application do
@moduledoc false

use Application

def start(_type, _args) do
children = [
Chromesmith.child_spec(:chrome_pool, [process_pool_size: 2])
]

opts = [strategy: :one_for_one, name: ChromesmithExample.Supervisor]
Supervisor.start_link(children, opts)
end
end
```