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

Mini Roadmap | A list of issues that would require fixing #19

Closed
10 tasks done
sansyrox opened this issue Jun 19, 2021 · 1 comment
Closed
10 tasks done

Mini Roadmap | A list of issues that would require fixing #19

sansyrox opened this issue Jun 19, 2021 · 1 comment

Comments

@sansyrox
Copy link
Member

sansyrox commented Jun 19, 2021

Need to fix the following

  • several un-needed dependencies (hyper, serde, serde_json, async-trait, log, async-channel)

  • The use of both async-std and tokio doesn't really make sense, combined with another thread pool the setup seems in-efficient.

  • Remove the use of blocking sockets

  • The server only accepts another connection after the previously accepted connection has been read from, this will cause SIGNIFICANT performance issues especially if a client is slow at sending data.

  • Server doesn't actually support multiple requests on the same connection, which breaks any use in the real world because 1 connection can send many requests.

  • Server assumes that all content returned from the framework will be a string, which in reality should be Bytes because there is no guarantee in the HTTP world that the response must be UTF-8. || Add support for JSON and other types

  • Server only reads 1024 bytes of data from the socket when you first accept it, at least from what I can see. This means that if the request size is greater than 1024 the next request to go through that connection will be invalid in all likely hood.

  • The server doesn't check if the actual HTTP request itself is valid, it just assumes that if it contains GET, POST, etc... That it's valid meaning you could have a POST request contain GET in the body and the server would treat it like a GET.

  • No HTTP header handling, you simply assume the response from python will only be the body, which creates issues if you want to set any kind of headers or some other status code.

  • If the client disconnects from the connection early, Python call fails, or and conversion fails the server will panic, and depending on where that happens it can cause the entire server to just shut down.

@sansyrox sansyrox changed the title Mini Roadmap | A list of issues that would require fixes Mini Roadmap | A list of issues that would require fixing Jun 19, 2021
@sansyrox sansyrox added this to Needs triage in Issue Priority Jul 1, 2021
@sansyrox
Copy link
Member Author

Implemented!

Issue Priority automation moved this from Needs triage to Closed Jul 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant