pycord-v3 icon indicating copy to clipboard operation
pycord-v3 copied to clipboard

Pycord v3 Rewrite

Open VincentRPS opened this issue 2 years ago • 6 comments

Summary

This rewrite's Pycord v3 for the final time to be more flexible, extensible, and faster.

This new version of v3 follows a very strict set of guidelines and goals set by me and many other people part of the wider Pycord Development Community, including developers of large bots, and core developers.

The guideline aims for a stricter, fancier, and more functional way of creating Discord bots in Python as opposed to our predecessors. While it may be harder for beginners, in the long run the goal is to make it so developers can make bots lightning fast, and more efficient than other libraries.

MyPy(c)

A former goal of the v3 Guidelines were to achieve full strict type-safety to compile with mypyc. That, at least for 3.0.x, won't be the goal. While we will still aim for type-safety to lessen bugs, for the near future the majority of Pycord v3 won't be compiled into C using MyPy.

Rust in Pycord

The part of Pycord that utilizes Discord's Voice & Video features will be written mostly in Rust. This allows us to:

  • Get really low level, while staying safe
  • Easily integrate with encryption tools (incl. Opus)

However, Voice & Video is going to be added after this PR. This PR aims to add all the basic low-level parts of the Discord API & Gateway, as well as every API endpoint. Models (Guild, Member, User, etc,) after, then Voice & Video.

Information

  • [ ] This PR fixes an issue.
  • [x] This PR adds something new (e.g. new method or parameters).
  • [x] This PR is a breaking change (e.g. methods or parameters removed/renamed).
  • [ ] This PR is not a code change (e.g. documentation, README, typehinting, examples, ...).

Checklist

  • [x] I have searched the open pull requests for duplicates.
  • [x] If code changes were made then they have been tested.
    • [ ] I have updated the documentation to reflect the changes.
  • [x] If type: ignore comments were used, a comment is also left explaining why.
  • [ ] I have updated the changelog to include these changes.

VincentRPS avatar Dec 08 '23 03:12 VincentRPS

hola, would you like api endpoints (again)

plun1331 avatar Dec 08 '23 16:12 plun1331

hola, would you like api endpoints (again)

Maybe a reverse uno, I do all the endpoints and you help out with the models lol, the models are what I struggle with the most, I don't know why, I think it's just because of how repetitive it is. To finish v3, I would probably need someone else to do the bulk of the impl for models

VincentRPS avatar Dec 08 '23 16:12 VincentRPS

hola, would you like api endpoints (again)

Maybe a reverse uno, I do all the endpoints and you help out with the models lol, the models are what I struggle with the most, I don't know why, I think it's just because of how repetitive it is. To finish v3, I would probably need someone else to do the bulk of the impl for models

So how are the models made and where do I put them

plun1331 avatar Dec 08 '23 17:12 plun1331

Woke up planning on doing homework, made routes instead: 7cf6a6c

plun1331 avatar Feb 20 '24 20:02 plun1331

Woke up planning on doing homework, made routes instead: 7cf6a6c

:fire:

VincentRPS avatar Feb 21 '24 00:02 VincentRPS

Update: I still did my homework

plun1331 avatar Feb 21 '24 00:02 plun1331