#farcaster #interface #xyz #contracts #api #account #key

farcaster-rs

A rust crate to interface & interact with the Farcaster.xyz contracts & APIs

11 releases (2 stable)

1.0.1 Feb 22, 2023
1.0.0 Dec 7, 2022
0.1.0 Nov 1, 2022
0.1.0-pre.6 Oct 29, 2022

#4 in #farcaster

33 downloads per month

MIT license

110KB
2K SLoC

farcaster-rs

farcaster-rs

🚀 A simple & easy way to interface with Farcaster via Rust 🦀

Author: Landon Boles




Credits

  • MistApproach
    • Tons of various improvements & suggestions to build on top of the crate & prepare it for the hubs launch.

📜 Documentation

For extensive documentation, visit our docs.rs page


🚀 Getting Started

Installation

To get started, add the farcaster_rs crate to your Cargo.toml file

farcaster_rs = "1.0.1"

Once you have the crate installed, you can start using the crate!

Usage

To connect to and use Farcaster API you need Ethereum provider HTTP endpoint along with mnemonic phrase or private key of an existing Farcaster account.

use farcaster_rs::{
  Farcaster,
  Account
};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
  // Initialize a new Account with a phrase/private key and an optional key duration (defaults to 1 hour)
  let account = Account::from_mnemonic("mnemonic phrase", None).await?;
  
  // Create a Farcaster connection
  let farcaster = Farcaster::new("eth node", account).await?;
  
  let casts = farcaster.get_casts_by_username("lndnnft", None, None).await?;
  
  println!("{:#?}", casts);
  
  Ok(())
}

🙏 Contributing

To start, I appreciate any and all contributions to the farcaster-rs repository!

There are 3 prefered things I'd like if you decide to contribute, however.

1. Ensure the issue/contribution is needed

If you spend your time building something, please ensure it's actually wanted/needed, this is best done by using the Issues tab, and either viewing other discussions, or opening a new issue/discussion

2. Create a new branch for your contribution

Once you have validated the contribution, and forked the repo to your own GitHub account, please create a new branch to commit your code onto.

This can be done via the git CLI pretty easily:

$ git switch -c my_cool_feature

3. Create a detailed pull request, with documentation

I'd like to keep everything documented to make it as easy as possible for people looking to use the crate.

When opening a pull request, please ensure your function/contribution has been properly documented, and include good information about it in the PR. (use common sense)

Thanks so much!

Dependencies

~19–33MB
~505K SLoC