Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Tool: Build a Flow SDK #20

Open
psiemens opened this issue Sep 13, 2021 · 27 comments
Open

New Tool: Build a Flow SDK #20

psiemens opened this issue Sep 13, 2021 · 27 comments
Assignees
Labels
SDKs Tier 1 Large task, spanning 4 milestones requiring extensive work and/or knowledge. Tier 2 Medium task, spanning 2-3 milestones requiring a moderate level of domain knowledge.

Comments

@psiemens
Copy link
Contributor

psiemens commented Sep 13, 2021

👋   If you are interested in working on this issue, please check out the Getting Started guide on HackerEarth!

Description (Problem Statement)

We are looking for teams interested in building and maintaining SDKs for Flow to make it easier for a broad range of developers to interact with the blockchain.

We welcome the introduction of any language SDK as a Tier 1 task with the exception of the following existing SDKs. If you intend to build in one these languages, we recommended you consider contributing to the existing repository (Tier 2):

New SDKs (Tier 1):

  • PHP
  • C#
  • Ruby
  • Swift
  • Rust
  • C/C++

Experience Required

  • Experience in the language and/or framework being used to construct the SDK
  • High level understanding of Flow's architecture (block production, transaction states, etc.)
  • Understanding of gRPC
  • Understanding of the Flow Access API

Minimum Feature Set (Acceptance Criteria)

Meet the SDK Guidelines

Extension (Optional) Feature Set

Additional Functionality

  • Identify and create methods that abstract common patterns to make it easier for developers to employ these patterns in their dapp.

Milestone Requirements

  1. Implement gRPC & propose an API based on the user stories in the SDK guidelines with rough implementation details on each method.
  2. Implement all user stories that do not involve parsing Cadence code.
  3. Implement the ability to send scripts and transactions with arguments.
  4. Create tests, documentation, and optimize for performance and usability.

Software Requirements

  • All requirements listed in the SDK Guidelines
  • Production ready code: The SDK is expected to be used in production by third-parties and so it should be secure, performant, and ready to use out of the box with minimal configuration.

Other Requirements

Documentation

  • The following pieces of documentation need to be completed alongside the code for a successful submission:
    • Installation Guide: How to get this application up and running.
    • Usage Guide: A highlight of all the features available and how to use them.
    • Contribution Guide: A thorough explanation of the codebase, where features are located, a diagram explaining complex interactions, etc. This is intended to be a primer for new contributors that would like to add or modify features.

Code standards or guidelines

  • Create code guidelines based on the best practices of the language chosen - attempt to be as semantic as possible to that language. Follow these guidelines during development, and assess against them for new contributions.

Judging Criteria

  • For all projects, technical & high-level judging criteria apply.
  • How easy and comprehensive is the SDK to use for Flow developers?
  • How many use cases does it cover?
  • How complex is it to learn and use?
  • How performant is it to use in production?

Resources

@psiemens psiemens added Tier 1 Large task, spanning 4 milestones requiring extensive work and/or knowledge. SDKs labels Sep 13, 2021
@srinjoyc srinjoyc added the Tier 2 Medium task, spanning 2-3 milestones requiring a moderate level of domain knowledge. label Sep 13, 2021
@psiemens psiemens changed the title Build a Flow SDK New TooL: Build a Flow SDK Sep 15, 2021
@psiemens psiemens changed the title New TooL: Build a Flow SDK New Tool: Build a Flow SDK Sep 15, 2021
@psiemens
Copy link
Contributor Author

Hey! 👋

I'm an engineer from the core Flow team who will be the go-to person for this task (the point-of-contact).

Feel free to hit me up with any questions about this issue. Once you start, I'll also be around to help with your implementation and review code.

You can comment here or find me on Discord (I'm pete#0003). Join the Flow Discord server if you're not there already!

@lmcmz
Copy link
Contributor

lmcmz commented Sep 16, 2021

Hi @psiemens

Team Zed will focus on Swift SDK implementation. ✊🏻

@sideninja
Copy link
Contributor

Hi 👋
my name is Gregor, and as a software engineer working on developer tools, I will be offering help to you and @psiemens with the work on this task.

Wish you good luck and feel free to reach out at any point.

You can comment here or find me on Discord (I'm sideninja#1970). Join the Flow Discord server if you're not there already!

@ryankopinsky
Copy link

👋🏼 Hey everyone! Super stoked to see more devs interested in creating a Swift SDK. I recently published the first Swift SDK for Flow and would love to unify efforts, if there is a desire to do so :) Here's the link (there will be many more updates to it in the next few days): https://docs.onflow.org/sdks/#swift

Cheers,
Ryan

@briandilley
Copy link
Contributor

Hi guys 👋🏼 - I'm one of the authors of the JVM SDK - happy to help answer any questions that anyone might have while implementing a new SDK. As an "outsider" (ie: I don't work at dapper) I may be able to offer a unique perspective.

@nduplessis
Copy link
Contributor

Hello 👋🏼, I'm building a Ruby SDK called flow_client (https://github.com/glucode/flow_client)

@fee1-dead
Copy link
Contributor

Hello, I am working on a Rust SDK.

@Cuttlas90
Copy link
Contributor

Hello 👋🏼, we're building a Python SDK for FLOW blockchain.

@psiemens
Copy link
Contributor Author

Awesome @barekati! Have you seen the Python SDK that @janezpodhostnik started? https://github.com/janezpodhostnik/flow-py-sdk

You can totally contribute to this Python SDK or use it as a starting place. Janez is on the core Flow team and is available to help out 😄

@janezpodhostnik
Copy link
Collaborator

Hi @barekati,

Like Peter mentioned, feel free to take anything you need from flow-py-sdk or contribute there. I can also help you with anything you need whichever path you choose. You can reach me here or on discord (TheOneSock#1135; JanezP on the Flow discord).

@eulerkochy
Copy link

Hi, our team will be working on C++ SDK.

Team Name - just_let_it_flo
Team Members - @eulerkochy, @QMrpy
Expected Date of 1st milestone - 7th Oct, 2021

@psiemens
Copy link
Contributor Author

Awesome @eulerkochy!

@Evan-Dapplica
Copy link

Hello @psiemens ,

My team has been working on Flow C++ SDK too.

@tyronbrand
Copy link
Contributor

Hey @psiemens,

I will build the .NET(C#) SDK

Team Name - .NET(C#) SDK

@nichandy
Copy link

nichandy commented Oct 2, 2021

Hi everyone,

I'm planning on contributing to the python sdk created by @janezpodhostnik (https://github.com/janezpodhostnik/flow-py-sdk).

Team name: nkeebs
Team page: https://www.hackerearth.com/challenges/hackathon/flip-fest/dashboard/5239d3d/team/

Github: @nichandy

@psiemens
Copy link
Contributor Author

psiemens commented Oct 3, 2021

That's great @tyronbrand! I'll connect you with some developers who have used C# with Flow before.

@psiemens
Copy link
Contributor Author

psiemens commented Oct 3, 2021

Thanks for signing up, @nichandy!

@janezpodhostnik
Copy link
Collaborator

Hi @nichandy,

Thank you for signing up! Head over to this issue to get a more detailed description of the work needed there. Feel free to work on it, however, please note that due to the straightforward nature of the issue, the earliest submission will get priority for rewards if solutions are similar. @barekati has already started working on it.

If you do decide to still work on it, don't hesitate to contact me on the issue or on discord (TheOneSock#1135; JanezP on the Flow discord)

@mlusiak
Copy link

mlusiak commented Oct 9, 2021

Hi, I'd love to help/contribute/build things around C# SDK. I saw there was already one project on Github, and also some team submission here. I'd rather co-op on a project than compete. How do I join?

@sideninja
Copy link
Contributor

Hi, I'd love to help/contribute/build things around C# SDK. I saw there was already one project on Github, and also some team submission here. I'd rather co-op on a project than compete. How do I join?

Hi @mlusiak happy to hear your will to co-op and I suggest reaching out to @tyronbrand to see if they are open to that, but in any case, we always welcome contributions from the community and I hope even if not during the flipfest you will make contributions to the SDK in the future.

@mlusiak
Copy link

mlusiak commented Oct 15, 2021

@sideninja I'm in touch with @tyronbrand :) Will contribute to his work!

@kimcodeashian
Copy link

Good day @tyronbrand, @lmcmz, @MarshallBelles, @fee1-dead, @nduplessis!

Thanks so much for all your hardwork & participation. In order to finalize winners & prepare for prize payout, we'll need the following actions from your end.

Please provide the following information by Nov 17, 2021, (in this GH Issue is fine):

1. Team Information

  • Team Members Information - Github Username + Email Contact + Percentage of prize allocation (total should = 100%)
  • All mentioned members MUST react to the post with a 👍 which will act as confirmation that the information is correct, or a 👎 to indicate that the information is not correct.
  • We will be reaching out via e-mail

🎖IMPORTANT: We will only proceed with prize payouts once all members have confirmed with 👍 on the post.

2. Video Demo (optional)

  • Please provide a 5-minute video demo to be featured & showcased in the FLIP Fest Closing Ceremonies
  • Link format & Downloadable (eg. Google Drive, Vimeo)
  • Content Format (Problem Statement, your work / how you solved it, final outcome)

We will be hosting Closing Ceremonies on November 23rd, 8AM PT where we'll having closing remarks from Dete & will be announcing the winners! I'll share the details here before Nov 17.

@fee1-dead
Copy link
Contributor

fee1-dead commented Nov 13, 2021

Team members for flow.rs:

@nduplessis
Copy link
Contributor

Hey @kimcodeashian

  1. @nduplessis - 100%

@tyronbrand
Copy link
Contributor

Hi @kimcodeashian

@MarshallBelles
Copy link
Contributor

@kimcodeashian

@kimcodeashian
Copy link

Hey folks,

We've received and reviewed over 82 submissions! What an amazing community on Flow! To commemorate all the hard work done, we have finalized winners and will be announcing them during our Closing Ceremony on Nov 23rd, 8AM PT. Be sure to join us - there may be some attendance prizes & a keynote from our CTO, Dete 😉!

RSVP here so you don't miss out! See you then!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
SDKs Tier 1 Large task, spanning 4 milestones requiring extensive work and/or knowledge. Tier 2 Medium task, spanning 2-3 milestones requiring a moderate level of domain knowledge.
Projects
None yet
Development

No branches or pull requests