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
- Host: GitHub
- URL: https://github.com/andrewvy/chromesmith
- Owner: andrewvy
- Created: 2017-08-18T19:49:53.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-10-23T15:40:20.000Z (over 8 years ago)
- Last Synced: 2025-02-28T10:09:41.144Z (over 1 year ago)
- Topics: elixir, headless-chrome, pool
- Language: Elixir
- Homepage: https://hex.pm/packages/chromesmith
- Size: 15.6 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
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
```