All the latest Robyn releases, right here.

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

v0.46.0 - [BREAKING 🚨] - Replace `queries` with `query_params` and replace `dict` with a custom `multimap`

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/683
  • Fix a few typos in documentation by @danielhoherd in https://github.com/sparckles/Robyn/pull/689
  • docs: replace beta community link with new link by @sansyrox in https://github.com/sparckles/Robyn/pull/690
  • Fix typo in file uploads docs by @Abdur-rahmaanJ in https://github.com/sparckles/Robyn/pull/694
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/692
  • docs: add docs for v0.45.0 - improve create robyn app by @sansyrox in https://github.com/sparckles/Robyn/pull/700
  • fix: add a multi map data structure to query parameters by @sansyrox in https://github.com/sparckles/Robyn/pull/699

New Contributors

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

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

v0.45.0 - Create Robyn App on steroids!

What's Changed

  • feat: add ability in robyn cli to scaffold example programs with various DBs by @bwdq in https://github.com/sparckles/Robyn/pull/584
  • fix: .gitignore fix for docs_src by @Mr-Sunglasses in https://github.com/sparckles/Robyn/pull/673
  • style: add better log message for route population by @sansyrox in https://github.com/sparckles/Robyn/pull/682

Doc Updates

  • docs: update metadata by @sansyrox in https://github.com/sparckles/Robyn/pull/674
  • docs: Changing from bash to python for authentication script by @jeasoft in https://github.com/sparckles/Robyn/pull/677
  • docs: fix pip install command for strawberry and Robyn by @jeasoft in https://github.com/sparckles/Robyn/pull/676
  • docs: fix import error in plugin docs by @Mr-Sunglasses in https://github.com/sparckles/Robyn/pull/681
  • docs: Fixing Future Roadmap path by @jeasoft in https://github.com/sparckles/Robyn/pull/675
  • docs: add Daniel's testimonial by @sansyrox in https://github.com/sparckles/Robyn/pull/670

New Contributors

  • @bwdq made their first contribution in https://github.com/sparckles/Robyn/pull/584
  • @jeasoft made their first contribution in https://github.com/sparckles/Robyn/pull/677

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

Sample Usage

python3 -m robyn --create                                                                                                         
? Directory Path: .
? Need Docker? (Y/N) Y
? Please select project type (Mongo/Postgres/Sqlalchemy/Prisma):  Postgres
Creating a new Robyn project '/Users/sanskar/test_dumpster/robyn-new'...
New Robyn project created in '/Users/sanskar/test_dumpster/robyn-new'

v0.44.2 - support Python 3.12 and minor fixes in main cli

What's Changed

  • Add robyn env docs by @sansyrox in https://github.com/sparckles/Robyn/pull/655
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/660
  • migrate to new docs by @sansyrox in https://github.com/sparckles/Robyn/pull/661
  • style: adopt ruff format by @sansyrox in https://github.com/sparckles/Robyn/pull/665
  • docs: update docs link by @sansyrox in https://github.com/sparckles/Robyn/pull/666
  • chore: adopt python 3.12 by @sansyrox in https://github.com/sparckles/Robyn/pull/668

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

v0.44.1 - fix import-error in --create robyn app and other fixes

What's Changed

  • docs: Docs suggestions by @elliotwaite in https://github.com/sparckles/Robyn/pull/650
  • fix broken links in docs readme by @Daksh in https://github.com/sparckles/Robyn/pull/652
  • docs: New docs fixes by @elliotwaite in https://github.com/sparckles/Robyn/pull/651
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sparckles/Robyn/pull/649
  • ci: use nox by @IdoKendo in https://github.com/sparckles/Robyn/pull/623
  • fix: import-error and broken docs by @Mr-Sunglasses in https://github.com/sparckles/Robyn/pull/658

New Contributors

  • @elliotwaite made their first contribution in https://github.com/sparckles/Robyn/pull/650
  • @Daksh made their first contribution in https://github.com/sparckles/Robyn/pull/652

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

v0.44.0 - [🚨BREAKING] - Add a new way of using websockets - implement broadcasts and sends

What's Changed

  • fix: websockets by @sansyrox in https://github.com/sparckles/Robyn/pull/620
  • docs: add docs for request.json by @sansyrox in https://github.com/sparckles/Robyn/pull/641
  • docs: add docs for architecture by @sansyrox in https://github.com/sparckles/Robyn/pull/645
  • docs: add docs for framework performance comparison by @sansyrox in https://github.com/sparckles/Robyn/pull/647
  • docs: add docs for plugins by @sansyrox in https://github.com/sparckles/Robyn/pull/648
@websocket.on("message")
async def message(ws: WebSocketConnector, msg: str) -> str:
    global websocket_state
    websocket_id = ws.id
    state = websocket_state[websocket_id]
    resp = ""
    if state == 0:
        resp = "Whaaat??"
        await ws.async_broadcast("This is a broadcast message")
        ws.sync_send_to(websocket_id, "This is a message to self")
    elif state == 1:
        resp = "Whooo??"
    elif state == 2:
        resp = "*chika* *chika* Slim Shady."
    websocket_state[websocket_id] = (state + 1) % 3

    return resp

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

v0.43.0 - Breaking 🚨 - Replace `url` parameter in the `app.start` and fix app router headers

What's Changed

  • fix: pass response headers from app to router by @IdoKendo in https://github.com/sparckles/Robyn/pull/625
  • Replace url parameter in the app.start by @carlosm27 in https://github.com/sparckles/Robyn/pull/614

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

v0.42.2 - fix minor issue with --create flag

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

  • Fix Typo - https://github.com/sparckles/Robyn/commit/bb0b8e23be5fa2a7eb148c7cd5ad52623db50a78

v0.42.1 - expose Url objects for test clients and performance improvements

What's Changed

  • Update README.md by @tushar5526 in https://github.com/sparckles/Robyn/pull/634
  • feat: enable lazy evaluation for logger by @IdoKendo in https://github.com/sparckles/Robyn/pull/633
  • feat: add Request and Url objects constructors to enable easier testing by @IdoKendo in https://github.com/sparckles/Robyn/pull/630

New Contributors

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

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

v0.42.0 - add `request.json()` with startup performance improvements

What's Changed

  • DOCS: fixes broken link to resources on README by @github-education in https://github.com/sparckles/Robyn/pull/628
  • fix: remove redundant Arc by @IdoKendo in https://github.com/sparckles/Robyn/pull/626
  • feat: add request.json() method by @IdoKendo in https://github.com/sparckles/Robyn/pull/629

New Contributors

  • @github-education made their first contribution in https://github.com/sparckles/Robyn/pull/628

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

v0.41.1 - Improved logging and adding a --version flag

What's Changed

  • docs: add new docs website by @sansyrox in https://github.com/sparckles/robyn/pull/608
  • feat: log routes when the router is populated by @carlosm27 in https://github.com/sparckles/robyn/pull/609
  • feat: add a --version flag by @sansyrox in https://github.com/sparckles/robyn/pull/619

Full Changelog: https://github.com/sparckles/robyn/compare/v0.41.0...v0.41.1

v0.41.0 - Replace body with description parameter and reduce wheel size

What's Changed

  • chore: decrease .whl filesize by @IdoKendo in https://github.com/sparckles/robyn/pull/603
  • fix: replace body with description by @sansyrox in https://github.com/sparckles/robyn/pull/604

Full Changelog: https://github.com/sparckles/robyn/compare/v0.40.0...v0.41.0

v0.40.0 - allow adding routes without using decorator

What's Changed

  • docs(README): Replace sansyrox with sparckles by @sansyrox in https://github.com/sparckles/robyn/pull/598
  • feat: allow adding routes without using decorator by @IdoKendo in https://github.com/sparckles/robyn/pull/592
  • ci: drop sun and ibm support by @sansyrox in https://github.com/sparckles/robyn/pull/601
  • Add proper condition for installing uvloop by @banipreetr in https://github.com/sparckles/robyn/pull/595

New Contributors

  • @banipreetr made their first contribution in https://github.com/sparckles/robyn/pull/595

Full Changelog: https://github.com/sparckles/robyn/compare/v0.39.0...v0.40.0

v0.39.0 - Breaking - Replace body with description parameter in the Response object

What's Changed

  • Feat/398 use poetry by @IdoKendo in https://github.com/sparckles/robyn/pull/512
  • feat: Improved the Current CLI. by @Mr-Sunglasses in https://github.com/sparckles/robyn/pull/556
  • ci: sync release and preview release actions by @sansyrox in https://github.com/sparckles/robyn/pull/581
  • Replace body with description parameter in Response object by @carlosm27 in https://github.com/sparckles/robyn/pull/580
  • chore: remove python3.7 support by @sansyrox in https://github.com/sparckles/robyn/pull/591
  • docs: add robyn-rate-limits to plugins doc by @IdoKendo in https://github.com/sparckles/robyn/pull/596

Full Changelog: https://github.com/sparckles/robyn/compare/v0.38.0...v0.39.0

v0.38.0 - An improved CLI for create-robyn-app

What's Changed

  • Feat/398 use poetry by @IdoKendo in https://github.com/sparckles/robyn/pull/512
  • feat: Improved the Current CLI. by @Mr-Sunglasses in https://github.com/sparckles/robyn/pull/556
  • ci: sync release and preview release actions by @sansyrox in https://github.com/sparckles/robyn/pull/581

https://github.com/sparckles/robyn/assets/29942790/afcfb08e-1f43-43d1-879c-b23e876527df

Full Changelog: https://github.com/sparckles/robyn/compare/v0.37.0...v0.38.0

v0.37.0 - faster jsonification - implement a rust based json serializations

What's Changed

  • Typo Fix in Docs by @ruslan-korneev in https://github.com/sparckles/robyn/pull/563
  • chore: fix pyproject implementation style by @sansyrox in https://github.com/sparckles/robyn/pull/522
  • feat: faster jsonification by @sansyrox in https://github.com/sparckles/robyn/pull/571

New Contributors

  • @ruslan-korneev made their first contribution in https://github.com/sparckles/robyn/pull/563

Full Changelog: https://github.com/sparckles/robyn/compare/v0.36.2...v0.37.0

v0.36.2 - Fixes Robyn CLI Docker Support

What's Changed

  • Fix Robyn CLI Docker Support - https://github.com/sparckles/robyn/commit/cc25de91cb6a261753392730e800d99e6ac0a1f7

Full Changelog: https://github.com/sparckles/robyn/compare/v0.36.0...v0.36.2

v0.36.0 - Add authentication Support

What's Changed

  • feat: add authentication support by @AntoineRR in https://github.com/sparckles/robyn/pull/501

Full Changelog: https://github.com/sparckles/robyn/compare/v0.35.1...v0.36.0

v0.35.1 - make returning text from websocket messages optional

What's Changed

  • make returning text from websocket messages optional by @urjitbhatia in https://github.com/sansyrox/robyn/pull/545

Full Changelog: https://github.com/sansyrox/robyn/compare/v0.35.0...v0.35.1

v0.35.0 - Add ability to share client messages and add --open flag to open browser on successful start

What's Changed

  • Adds ability to share messages from client with py by @urjitbhatia in https://github.com/sansyrox/robyn/pull/537
  • feat: add --open flag to open browser on successful start of the server by @IdoKendo in https://github.com/sansyrox/robyn/pull/517

Full Changelog: https://github.com/sansyrox/robyn/compare/v0.34.0...v0.35.0

v0.34.0 - Make web sockets standard compliant and allow middlewares to return Response objects

What's Changed

  • Don't respond with pong when a pong message is received. by @urjitbhatia in https://github.com/sansyrox/robyn/pull/536
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sansyrox/robyn/pull/540
  • feat: allow before middlewares to return Response objects by @AntoineRR in https://github.com/sansyrox/robyn/pull/534

Full Changelog: https://github.com/sansyrox/robyn/compare/v0.33.0...v0.34.0