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, and manages headless chrome processes with 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.

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