Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 92 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,60 +1,113 @@
<img src="extension/public/assets/linera/Linera_FullColor_H.svg" width="250" />
<div align="center">
<img src="extension/public/assets/linera/Linera_FullColor_H.svg" width="250">
</div>

# Linera Web client
# **Linera Web Client**

This repository implements a Web client for the Linera protocol.
This repository implements a **Web client** for the **Linera protocol**.

# Building
<div align="center">

## Setup
[![GitHub Repo stars](https://img.shields.io/github/stars/linera-io/linera-web?logo=github&color=yellow)](https://github.com/linera-io/linera-web/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/linera-io/linera-web?logo=github&color=blue)](https://github.com/linera-io/linera-web/network/members)
[![GitHub last commit](https://img.shields.io/github/last-commit/linera-io/linera-web?logo=git)](https://github.com/linera-io/linera-web/commits/main)
[![License](https://img.shields.io/badge/license-Apache-green.svg)](LICENSE)[![Website](https://img.shields.io/badge/Website-Linera.io-blue?style=flat&logo=google-chrome)](https://linera.io)
[![Telegram](https://img.shields.io/badge/Telegram-26A5E4?logo=telegram&logoColor=white)](https://t.me/linera_io)
[![Discord](https://img.shields.io/badge/Discord-5865F2?logo=discord&logoColor=white)](https://discord.gg/linera)
[![Twitter](https://img.shields.io/twitter/follow/linera_io?style=social)](https://x.com/linera_io)

This repository contains a Nix flake that precisely specifies its
build environment. The easiest way to set up the build environment is
to install Nix with flake support (e.g. using the [Determinate Nix
installer](https://github.com/DeterminateSystems/nix-installer)) and
then run `nix develop` to enter the build environment.

Currently we only support building on Linux (`x86_64-unknown-linux-gnu`).
</div>

## Building
---

The project builds with `pnpm`. First install the JavaScript dependencies:
## **Setup**

```shellsession
pnpm install
This repository includes a **Nix flake** that precisely specifies its build environment.
To set up, install **Nix** with flake support (e.g., via the [Determinate Nix Installer](https://github.com/DeterminateSystems/nix-installer))
and then run:

**Enter the build environment**

```bash
nix develop
```

Then build the extension:
Currently, **only Linux (`x86_64-unknown-linux-gnu`)** is supported.

---

## **Building the Project**

```shellsession
cd extension
pnpm build:extension
Linera Web Client builds with **pnpm**.

**1. Install JavaScript dependencies:**

```bash
pnpm install
```

This will result in an unpacked Manifest v3 extension in
`extension/dist/extension`.
**2. Build the extension:**

```bash
cd extension && pnpm build:extension
```

# Installation
This will generate an **unpacked Manifest v3 extension** in `extension/dist/extension`.

After successfully running `pnpm build`, the extension can be loaded
into Chrome or Chromium:
---

- Open the settings menu.
- Select ‘Extensions’ → ‘Manage Extensions’.
- Enable ‘Developer mode’. This will show an option ‘Load unpacked’.
- Navigate to the `extension/dist` directory and select it.
- You've installed the extension!
## **Installation**

By default extension icons are hidden behind a top-level ‘Extensions’
menu in the browser toolbar; to make access easier, you can pin this
extension to have it appear at the top level next to the ‘Extensions’
icon.
After successfully building the extension, you can load it into **Chrome/Chromium**:

# Development
1. Open the **settings menu**.
2. Navigate to **Extensions** → **Manage Extensions**.
3. Enable **Developer mode** (this will show an option **Load unpacked**).
4. Select the `extension/dist` directory.
5. **Done! The extension is installed!**

To make access easier, **pin the extension** to appear in the top-level toolbar.

---

## **Development Mode**

For development, use the **watch mode** to automatically rebuild on changes:

```bash
pnpm build --watch
```

Changes to the **client worker** won’t be reflected until you manually run:

```bash
wasm-pack build
```

## Environment
---

## **Join the Community**

<p align="left">
<a href="https://t.me/linera_io">
<img src="https://img.shields.io/badge/Telegram-26A5E4?logo=telegram&logoColor=white&style=for-the-badge" alt="Telegram">
</a>
<a href="https://discord.gg/linera">
<img src="https://img.shields.io/badge/Discord-5865F2?logo=discord&logoColor=white&style=for-the-badge" alt="Discord">
</a>
<a href="https://x.com/linera_io">
<img src="https://img.shields.io/badge/Twitter-000000?logo=x&logoColor=white&style=for-the-badge" alt="Twitter (X)">
</a>

<a href="https://linera.io">
<img src="https://img.shields.io/badge/Website-0077b5?logo=internet-explorer&logoColor=white&style=for-the-badge" alt="Official Website">
</a>
<a href="https://linera.dev">
<img src="https://img.shields.io/badge/Developer%20Docs-4CAF50?logo=read-the-docs&logoColor=white&style=for-the-badge" alt="Developer Docs">
</a>
<a href="https://linera.io/whitepaper">
<img src="https://img.shields.io/badge/Whitepaper-FFA500?logo=bookstack&logoColor=white&style=for-the-badge" alt="Whitepaper">
</a>
</p>

For development, you can also use `pnpm build --watch` to
automatically rebuild the extension on change. Changes to the client
worker will not propagate to the extension, but once you run
`wasm-pack build` they will be picked up.