Skip to content

elk-zone/elk-native

Repository files navigation

Elk native logo

Elk Native


discord chat



Warning

Elk Native is no longer maintained. Elk can be used a PWA instead.


Native version of Elk, a nimble Mastodon web client.

Elk Native is even more early alpha than the web version, but we would love your feedback and contributions. If you would like to help us with testing, feedback, or contributing, join our discord and get involved.

Screenshot of the app, showing the federated timeline home Screenshot of the app, showing the federated timeline home

Contributing

We're really excited that you're interested in contributing to Elk! Please read through the small guide below to get started:

Note:
This repo only holds the code necessary for the native app and just git-submodules the frontend from https://github.com/elk-zone/elk so please submit Issues and PRs concerning the frontend there!

Local Setup

First you will need to install Rust and other system dependencies required for developing a Tauri app, you can follow this guide.

Next, you need to install the Tauri CLI which is used to orchestrate the build and package up the final app:

cargo install tauri-cli
# or
npm install -g @tauri-apps/cli
# or 
pnpm install -g @tauri-apps/cli
# or
yarn add -g @tauri-apps/cli

Now clone the submodule in the elk folder.

git submodule update --init elk

Next install the frontend dependencies:

cd elk && pnpm i

Then you can run the app in development mode:

cargo tauri dev

To create a production build of the app:

cargo tauri build

Logging

This app uses a unified logging stream that encompasses both logs from the Rust Core as well as from the frontend. Log levels and filters can be set through the RUST_LOG environment variable (this also works in a release mode app).

For more information on how to specify log levels and filters see the env_logger docs.

License

MIT © 2022-PRESENT Elk Native contributors