• Tests vs. Types — Rust version

    • Translation

    A few days ago 0xd34df00d has published the translation of the article, describing the possible information about some function if we use it as a "black box", not trying to read its implementation. Of course, this information is quite different from language to language; in the original article, four cases were considered:


    • Python — dynamic typing, almost no information from signature, some hints are gained by the tests;
    • C — weak static typing, a little more information;
    • Haskell — strong static typing, with pure functions by default, a lot more information;
    • Idris — dependent typing, compiler can prove the function correctness.

    "Here's C and there's Haskell, and what about Rust?" — this was the first question in the following discussion. The reply is here.

    Read more →
  • Long journey to Tox-rs. Part 1

      Tox logo

      Hi everyone!


      I like Tox and respect the participants of this project and their work. In an effort to help Tox developers and users, I looked into the code and noticed potential problems that could lead to a false sense of security. Since I originally published this article in 2016 (in Russian), many improvements have been made to Tox, and I lead a team that re-wrote secure Tox software from scratch using the Rust programming language (check out Tox-rs). I DO recommend using tox in 2019. Let's take a look what actually made us rewrite Tox in Rust.


      Original article of 2016


      There is an unhealthy tendency to overestimate the security of E2E systems only on the basis that they are E2E. I will present objective facts supplemented with my own comments for you to draw your own conclusions.


      Spoiler: The Tox developers agree with my points and my source code pull request was accepted.

      Here go facts:
    • Generic Methods in Rust: How Exonum Shifted from Iron to Actix-web

        The Rust ecosystem is still growing. As a result, new libraries with improved functionality are frequently released into the developer community, while older libraries become obsolete. When we initially designed Exonum, we used the Iron web-framework. In this article, we describe how we ported the Exonum framework to actix-web using generic programming.

        Read more →
      • A bot for Starcraft in Rust, C or any other language

        • Translation

        StarCraft: Brood War. This game means so much to me! And to many of you, I guess. So much, that I wonder if I should even give a link to its page on Wikipedia or not.


        Once Halt sent me PM and offered to learn Rust. Like any ordinary people, we decided to start with hello world writing a dynamic library for Windows that could be loaded into StarCraft's address space and manage units.


        The following article will describe the process of finding solutions and using technologies and techniques that will allow you to learn new things about Rust and its ecosystem. You may also be inspired to implement a bot using your favorite language, whether it be C, C++, Ruby, Python, etc.

        Ready to roll out!
        • +43
        • 23.7k
        • 3