Go to file
kernelkind dae57d78ef Add precommit hook to suggest proper formatting
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-19 14:13:11 -07:00
.github/workflows Initial commit 2022-11-05 22:12:17 -07:00
assets Create account login panel 2024-04-01 10:15:42 -07:00
enostr get all missing ids from all timelines 2024-04-12 18:52:32 -07:00
queries queries: update hashtags query 2024-04-09 18:49:24 -07:00
scripts Add precommit hook to suggest proper formatting 2024-04-19 14:13:11 -07:00
src Apply cargo fmt 2024-04-19 14:13:11 -07:00
.envrc Add nix-shell for macos android development 2024-04-11 14:30:16 -07:00
.gitignore gitignore: add perf files 2024-03-21 14:30:22 +01:00
Cargo.lock crates: add bitflags 2024-04-14 16:23:36 -07:00
Cargo.toml crates: add bitflags 2024-04-14 16:23:36 -07:00
check check script 2023-07-01 11:26:33 -07:00
check.sh Initial commit 2022-11-05 22:12:17 -07:00
damus.keystore add temporary release keystore 2023-07-09 12:29:39 -07:00
index.html codename is domus for now 2023-07-01 11:25:55 -07:00
LICENSE add license 2023-07-05 14:56:14 -07:00
Makefile profile picture image cache 2024-02-27 14:26:02 -08:00
README.md Add precommit hook to suggest proper formatting 2024-04-19 14:13:11 -07:00
rust-toolchain progress 2022-11-06 19:32:13 -08:00
SECURITY.md Create SECURITY.md 2024-04-09 23:05:31 -05:00
shell.nix add rustup just in case 2024-04-11 14:35:02 -07:00
Trunk.toml trunk: notedeck 2023-07-06 08:40:50 -07:00

Damus

A multiplatform nostr client. Works on android and desktop

Alpha! WIP!

Desktop

The desktop client is called notedeck:

notedeck

Android

Look it actually runs on android!

Usage

You can customize the columns by passing them as command-line arguments. This is only for testing and will likely change.

$ ./target/release/notedeck "$(cat queries/timeline.json)" "$(cat queries/notifications.json)"

Developer Setup

Desktop (Linux/MacOS, Windows?)

First, install nix if you don't have it.

The shell.nix provides a reproducible build environment for android and rust. I recommend using direnv to load this environment when you cd into the directory.

If you don't have direnv, enter the dev shell via:

$ nix-shell

Once you have your dev shell setup, you can build with this command:

$ cargo run --release 

Android

The dev shell should also have all of the android-sdk dependencies needed for development, but you still need the aarch64-linux-android rustup target installed:

$ rustup target add aarch64-linux-android

To run on a real device, just type:

$ cargo apk run --release

Android Emulator

  • Install Android Studio
  • Open 'Device Manager' in Android Studio
  • Add a new device with API level 34 and ABI arm64-v8a (even though the app uses 30, the 30 emulator can't find the vulkan adapter, but 34 works fine)
  • Start up the emulator

while the emulator is running, run:

cargo apk run --release

The app should appear on the emulator

Contributing

Configure the developer environment:

./scripts/dev_setup.sh

This will add the pre-commit hook to your local repository to suggest proper formatting before commits.