GithubHelp home page GithubHelp logo

website-next's Introduction

Tokio Website

The website for the Tokio project. Lives at https://tokio.rs.

Besides containing the content for the website, it also includes crates containing the example code used in the tutorial. These crates can be compiled and ran.

Contributing

Thinking about contributing? Great! This should help you get the website running locally.

Getting Started

The website is built using Next.js paired with the Bulma CSS framework. First, make sure you have NPM installed. Next, start the development server:

npm run dev

Then, open http://localhost:3000.

Resources

To learn more about Next.js, take a look at the following resources:

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tokio by you, shall be licensed as MIT, without any additional terms or conditions.

website-next's People

Contributors

alce avatar carllerche avatar darksonn avatar davidbarsky avatar grampelberg avatar incidental-complexity avatar jxs avatar luciofranco avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website-next's Issues

Async, Future, and Pinning topic

This issue tracks topics to cover on this page. This is not exhaustive and just to track ideas.

  • Difference between async fn and Future
  • How do generators fit in?
  • What is pinning
  • What is Unpin.

Link in API docs

The Tokio API docs have a link to https://tokio.rs/docs/overview/. We should avoid breaking this link, perhaps with a redirect.

IDEs

Apparently CLion needs the following setting to make completion work with Tokio types behind our impl_* macros.

Settings > Languages & Frameworks > Rust > Expand declarative macros: Use experimental engine

Links that are also code

A link such as [`Future`] currently shows up identically to code that is not a link. We should update the css to fix this.

Topics articles

Articles that we would like in our topics section of the documentation.

  • Basic concepts (async/await syntax, spawning, don't block the thread)
  • When should you use async/await? (and when should you not?)
  • Streams #19
  • Channels
  • Concurrency (spawn, join!, select!, FuturesUnordered)
  • Futures as objects
  • Cancellation
  • AsyncRead/Write
  • Interfacing sync and async code
  • Codec
  • Building the Runtime explicitly
  • Shutting down cleanly (abortable, broadcast channels)
  • Locks
  • Deep dive/Implementing Future/Stream manually

The first five should probably go first. The remaining are in no particular order.

mini-redis outline proposal

Client

Along with the hello-world guide there should be a guide with the pubsub example, to give the user an idea on how the interaction with the server works on the client side

Server

  • Start with TcpListener, explaining accept and spawning a new task for each connection.
  • Implement Connection struct, describe the read_frame process and Frame conversion, introduce Bytes crate
  • Implement Command struct and from_frame method explaining the Frame to Command parsing
  • Add GET variant to Command and implement apply method introducing the internal Db and explaining the decisions behind it's implementation: why it's an Arc<Mutex>, the State and Entry struct's
  • implement GET's write_frame and describe the process of writing a Command back to a Frame and writing it on the socket
  • Add SET variant to Command enum, the flow is similar to GET, but has the key expiration logic. Guide through it's implementation with tokio's Duration and Notify
  • Add PUB variant to Command and implement the Db pubsub behavior bringing up tokio's Broadcast struct
  • Add SUB variant to Command, and implement the graceful shutdown notification logic of Server
  • Implement the client connection limit handling on the Server.
  • Introduce tokio-tracing and instrument the code

Fix front page

The getting started button has a broken link link. The "learn more" link on the runtime stack is also broken, as well as Tokio's docs link in the footer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.