All the latest Robyn releases, right here.

v0.58.1 - fix headers causing panic in invalid value conversion

What's Changed

  • fix: headers causing panic in invalid value to string conversion by @sansyrox in https://github.com/sparckles/Robyn/pull/908
  • ci: update rust dependencies by @sansyrox in https://github.com/sparckles/Robyn/pull/918
  • chore: update pull_request_template.md by @sansyrox in https://github.com/sparckles/Robyn/pull/920

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.58.0...v0.58.1

v0.58.0 - control dev mode with `ROBYN_DEV_MODE` env var

What's Changed

  • docs: fix styling of docs website by @sansyrox in https://github.com/sparckles/Robyn/pull/895
  • feat: control dev mode with env var by @VishnuSanal in https://github.com/sparckles/Robyn/pull/877

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.57.1...v0.58.0

v0.57.1 - fixes bug in binary responses

What's Changed

  • fix: fix response type for json by @yomaaf in https://github.com/sparckles/Robyn/pull/888
  • refactor: PyResponse::new to delegate body type checking to check_body… by @asamaayako in https://github.com/sparckles/Robyn/pull/891
  • docs: fix a typo in the deployment docs by @sansyrox in https://github.com/sparckles/Robyn/pull/893
  • fix: bug Binary type Reponse causes a crash#874 by @asamaayako in https://github.com/sparckles/Robyn/pull/882

New Contributors

  • @yomaaf made their first contribution in https://github.com/sparckles/Robyn/pull/888

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.57.0...v0.57.1

v0.57.0 - add QueryParams to WebSocket interface

What's Changed

  • perf: type check function does not need to take ownership by @asamaayako in https://github.com/sparckles/Robyn/pull/884
  • feat: add QueryParams to WebSocket by @VishnuSanal in https://github.com/sparckles/Robyn/pull/886

New Contributors

  • @asamaayako made their first contribution in https://github.com/sparckles/Robyn/pull/884

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.56.3...v0.57.0

v0.56.3 - implement a `set_cookie` interface in Response struct

What's Changed

  • feat: implement set_cookie function by @VishnuSanal in https://github.com/sparckles/Robyn/pull/870
  • fix: typo error in postgres scaffold by @octaviusp in https://github.com/sparckles/Robyn/pull/883

New Contributors

  • @octaviusp made their first contribution in https://github.com/sparckles/Robyn/pull/883

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.56.2...v0.56.3

v0.56.2 - fix file serving

What's Changed

  • docs: fix html docs by @sansyrox in https://github.com/sparckles/Robyn/pull/880
  • fix: file serving by @sansyrox in https://github.com/sparckles/Robyn/pull/881

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.56.1...v0.56.2

v0.56.1 - remove repeated port checking in dev mode

What's Changed

  • chore: pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/871
  • docs: add docs for all the robyn env variables by @VishnuSanal in https://github.com/sparckles/Robyn/pull/872
  • fix: disable repeated port checking in dev mode by @sansyrox in https://github.com/sparckles/Robyn/pull/875

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.56.0...v0.56.1

v0.56.0 - [BREAKING 🚨] - allow generic names for callback args

What's Changed

  • docs: fix typo in the get_crimes route by @Amaljyothi44 in https://github.com/sparckles/Robyn/pull/852
  • docs: document redirection by @VishnuSanal in https://github.com/sparckles/Robyn/pull/846
  • chore: pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/860
  • fix: allow generic names for callback args by @sansyrox in https://github.com/sparckles/Robyn/pull/861

New Contributors

  • @Amaljyothi44 made their first contribution in https://github.com/sparckles/Robyn/pull/852

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.55.0...v0.56.0

v0.55.0 - add prompt for a new port when a port is occupied

What's Changed

  • chore: remove codesee yaml by @sansyrox in https://github.com/sparckles/Robyn/pull/820
  • chore: pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/823
  • docs: fix form data typo by @sansyrox in https://github.com/sparckles/Robyn/pull/832
  • docs: update class Request documentation by @sansyrox in https://github.com/sparckles/Robyn/pull/834
  • chore: pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/830
  • docs: better setup instructions by @VishnuSanal in https://github.com/sparckles/Robyn/pull/838
  • docs: split custom exception handler and scaling pages by @VishnuSanal in https://github.com/sparckles/Robyn/pull/843
  • chore: pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/848
  • feat: prompt for a new port when a port is occupied by @sansyrox in https://github.com/sparckles/Robyn/pull/849

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.54.5...v0.55.0

v0.54.5 - fix the optional returns in headers.get

What's Changed

  • fix: add an optional return type in headers by @sansyrox in https://github.com/sparckles/Robyn/pull/805

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.54.4...v0.54.5

v0.54.4 - fix trailing slash issue in urls

What's Changed

  • chore: pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/812
  • ci: fix linux cross builds by @sansyrox in https://github.com/sparckles/Robyn/pull/814
  • chore: pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/815
  • fix: trailing slash issue by @VishnuSanal in https://github.com/sparckles/Robyn/pull/819

New Contributors

  • @VishnuSanal made their first contribution in https://github.com/sparckles/Robyn/pull/819

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.54.3...v0.54.4

v0.54.3 - add a fix for sub process spawning

What's Changed

  • fix: add a fix for sub process spawning by @sansyrox in https://github.com/sparckles/Robyn/pull/813

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.54.2...v0.54.3

v0.54.2 - fix: request.json to remove the extra double quotes in string types

What's Changed

  • docs: fix path params docs by @sansyrox in https://github.com/sparckles/Robyn/pull/794
  • docs: remove redundant imports from js code by @sansyrox in https://github.com/sparckles/Robyn/pull/790
  • docs: fix documentation about middlewares by @sansyrox in https://github.com/sparckles/Robyn/pull/795
  • chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/798
  • chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/803
  • chore: update setup.py by @jeffwidman in https://github.com/sparckles/Robyn/pull/806
  • fix: request.json by @sansyrox in https://github.com/sparckles/Robyn/pull/808

New Contributors

  • @jeffwidman made their first contribution in https://github.com/sparckles/Robyn/pull/806

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.54.1...v0.54.2

v0.54.1 - fix before request middleware for file uploads

What's Changed

  • ci(commitizen): enforce conventional-commit syntax by @iiian in https://github.com/sparckles/Robyn/pull/776
  • feat: add a default type in Query Params get by @sansyrox in https://github.com/sparckles/Robyn/pull/787
  • fix: before request middleware for file uploads by @sansyrox in https://github.com/sparckles/Robyn/pull/785

New Contributors

  • @iiian made their first contribution in https://github.com/sparckles/Robyn/pull/776

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.54.0...v0.54.1

v0.54.0 - add form data handling and file handling

What's Changed

  • feat: add form data handling and file handling by @sansyrox in https://github.com/sparckles/Robyn/pull/778
  • tests: add tests for form data by @sansyrox in https://github.com/sparckles/Robyn/pull/781

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.53.2...v0.54.0

v0.53.2 - add __contains__ in headers

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.53.2...v0.53.2

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/774
  • fix: add contains in headers by @sansyrox in https://github.com/sparckles/Robyn/pull/775
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/779

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.53.1...v0.53.2

v0.53.1 - fix internal json rendering

What's Changed

  • fix: replace jsonify with orjson by @sansyrox in https://github.com/sparckles/Robyn/pull/772

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.53.0...v0.53.1

v0.53.0 - [BREAKING 🚨] - add a tuple return type and dict return cast to json

What's Changed

  • docs: fix serve html and html docs by @sansyrox in https://github.com/sparckles/Robyn/pull/770
  • feat: allow dictionary being returned directly by @sansyrox in https://github.com/sparckles/Robyn/pull/768

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.52.3...v0.53.0

v0.52.3 - fix the export namespace for websockets

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/762
  • chore(deps): bump the github-actions group with 1 update by @dependabot in https://github.com/sparckles/Robyn/pull/760
  • fix release ci by @sansyrox in https://github.com/sparckles/Robyn/pull/764
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/766

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.52.1...v0.52.3

v0.52.2 - Fix a typo in sqlalchemy and CI fixes

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/751
  • Keep GitHub Actions up to date with GitHub's Dependabot by @cclauss in https://github.com/sparckles/Robyn/pull/754
  • chore(deps): bump the github-actions group with 7 updates by @dependabot in https://github.com/sparckles/Robyn/pull/757
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/752
  • Distutils is removed in Python 3.12 so switch to setuptools by @cclauss in https://github.com/sparckles/Robyn/pull/753
  • fix: typo in sqlalchemy scaffold by @sansyrox in https://github.com/sparckles/Robyn/pull/759

New Contributors

  • @dependabot made their first contribution in https://github.com/sparckles/Robyn/pull/757

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.52.0...v0.52.1

v0.52.0 - Add sqlmodel in Robyn scaffolds!

What's Changed

  • Added sqlmodel scaffold by @leogregianin in https://github.com/sparckles/Robyn/pull/749

New Contributors

  • @leogregianin made their first contribution in https://github.com/sparckles/Robyn/pull/749

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.51.3...v0.52.0

v0.51.3 - fix Dockerfile in robyn scaffolds

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/747
  • fix: requirements.txt order in robyn scaffolds by @sansyrox in https://github.com/sparckles/Robyn/pull/750

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.51.2...v0.51.3

v0.51.2 - implement [] sets and gets in headers

What's Changed

  • chore: fix pyproject and poetry run test_server and implement [] sets and gets in headers command by @AntoineRR in https://github.com/sparckles/Robyn/pull/746

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.51.1...v0.51.2

v0.51.1 - fix --dev reloading bug

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/739
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/740
  • fix: robyn dev loading bug by @sansyrox in https://github.com/sparckles/Robyn/pull/743

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.51.0...v0.51.1

v0.51.0 - add a way to serve html strings

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/736
  • feat: add a way to serve htmls by @sansyrox in https://github.com/sparckles/Robyn/pull/730
  • fix(releases.jsx): docs' heading colors by @sansyrox in https://github.com/sparckles/Robyn/pull/737

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.50.0...v0.51.0

v0.50.0 - add direct rust imports!

What's Changed

  • feat: add rust imports by @sansyrox in https://github.com/sparckles/Robyn/pull/717
  • fix: rust imports by @sansyrox in https://github.com/sparckles/Robyn/pull/733
  • docs: fix web sockets docs by @sansyrox in https://github.com/sparckles/Robyn/pull/732

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.49.3...v0.50.0

Docs - https://robyn.tech/documentation/api_reference/using_rust_directly

A detailed thought process here - https://sanskar.wtf/posts/future-of-web-apis

v0.49.3 - fix cli invocation

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/715
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/719
  • Add argument 'origins' to Cors docs by @carlosm27 in https://github.com/sparckles/Robyn/pull/710
  • docs: fix docs color scheme by @sansyrox in https://github.com/sparckles/Robyn/pull/720
  • docs: fix headers docs by @sansyrox in https://github.com/sparckles/Robyn/pull/721
  • feat: make startup link log clickable by @sansyrox in https://github.com/sparckles/Robyn/pull/722
  • fix: cli invocation for Robyn by @sansyrox in https://github.com/sparckles/Robyn/pull/723

Sample Usage

  • robyn --version works now. No need for python -m robyn --version

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.49.0...v0.49.3

v0.49.0 - [BREAKING 🚨] - make `--dev` command a module only command

What's Changed

  • docs: fix broken link for di page by @sansyrox in https://github.com/sparckles/Robyn/pull/707
  • feat: make the cli the entry point by @sansyrox in https://github.com/sparckles/Robyn/pull/713
  • docs: add docs for --dev flag by @sansyrox in https://github.com/sparckles/Robyn/pull/714

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.48.0...v0.49.0

Now, --dev mode only works as a module command, e.g. python -m robyn --dev

We had to make --dev command as a module only command to add support for file deletion. Deletion of files would break the module imports otherwise.

v0.48.0 - add dependency injections

What's Changed

  • feat: add dependency injections by @DarrenSeng @Frodriguez116 @sansyrox in https://github.com/sparckles/Robyn/pull/569

New Contributors

  • @DarrenSeng made their first contribution in https://github.com/sparckles/Robyn/pull/569
  • @Frodriguez116 made their first contribution in https://github.com/sparckles/Robyn/pull/569

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.47.0...v0.48.0

Sample Usage

https://robyn.tech/documentation/api_reference/dependency_injection

v0.47.0 - [BREAKING 🚨] - Replace `headers` dict with a custom `multimap`

What's Changed

  • feat: add multimap headers by @sansyrox in https://github.com/sparckles/Robyn/pull/704

New headers object

class Headers:
    def __init__(self, default_headers: Optional[dict]) -> None:
        pass

    def set(self, key: str, value: str) -> None:
        """
        Sets the value of the header with the given key.
        If the key already exists, the value will be appended to the list of values.

        Args:
            key (str): The key of the header
            value (str): The value of the header
        """
        pass

    def get(self, key: str) -> Optional[str]:
        """
        Gets the last value of the header with the given key.

        Args:
            key (str): The key of the header
        """
        pass

    def populate_from_dict(self, headers: dict[str, str]) -> None:
        """
        Populates the headers from a dictionary.

        Args:
            headers (dict[str, str]): The dictionary of headers
        """
        pass

    def contains(self, key: str) -> bool:
        """
        Returns:
            True if the headers contain the key, False otherwise

        Args:
            key (str): The key of the header
        """
        pass

    def is_empty(self) -> bool:
        pass

Full Changelog: https://github.com/sparckles/Robyn/compare/v0.46.0...v0.47.0