Releases: sparckles/Robyn
v0.50.0 - add direct rust imports!
What's Changed
- feat: add rust imports by @sansyrox in #717
- fix: rust imports by @sansyrox in #733
- docs: fix web sockets docs by @sansyrox in #732
Full Changelog: 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 #715
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #719
- Add argument 'origins' to Cors docs by @carlosm27 in #710
- docs: fix docs color scheme by @sansyrox in #720
- docs: fix headers docs by @sansyrox in #721
- feat: make startup link log clickable by @sansyrox in #722
- fix: cli invocation for Robyn by @sansyrox in #723
Sample Usage
robyn --versionworks now. No need forpython -m robyn --version
Full Changelog: 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 #707
- feat: make the cli the entry point by @sansyrox in #713
- docs: add docs for --dev flag by @sansyrox in #714
Full Changelog: 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 #569
New Contributors
- @DarrenSeng made their first contribution in #569
- @Frodriguez116 made their first contribution in #569
Full Changelog: 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
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: 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 #683
- Fix a few typos in documentation by @danielhoherd in #689
- docs: replace beta community link with new link by @sansyrox in #690
- Fix typo in file uploads docs by @Abdur-rahmaanJ in #694
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #692
- docs: add docs for v0.45.0 - improve create robyn app by @sansyrox in #700
- fix: add a multi map data structure to query parameters by @sansyrox in #699
New Contributors
- @danielhoherd made their first contribution in #689
Full Changelog: 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 #584
- fix: .gitignore fix for docs_src by @Mr-Sunglasses in #673
- style: add better log message for route population by @sansyrox in #682
Doc Updates
- docs: update metadata by @sansyrox in #674
- docs: Changing from bash to python for authentication script by @jeasoft in #677
- docs: fix pip install command for strawberry and Robyn by @jeasoft in #676
- docs: fix import error in plugin docs by @Mr-Sunglasses in #681
- docs: Fixing Future Roadmap path by @jeasoft in #675
- docs: add Daniel's testimonial by @sansyrox in #670
New Contributors
Full Changelog: 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 #655
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #660
- migrate to new docs by @sansyrox in #661
- style: adopt ruff format by @sansyrox in #665
- docs: update docs link by @sansyrox in #666
- chore: adopt python 3.12 by @sansyrox in #668
Full Changelog: 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 #650
- fix broken links in docs readme by @Daksh in #652
- docs: New docs fixes by @elliotwaite in #651
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #649
- ci: use nox by @IdoKendo in #623
- fix: import-error and broken docs by @Mr-Sunglasses in #658
New Contributors
- @elliotwaite made their first contribution in #650
- @Daksh made their first contribution in #652
Full Changelog: 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 #620
- docs: add docs for request.json by @sansyrox in #641
- docs: add docs for architecture by @sansyrox in #645
- docs: add docs for framework performance comparison by @sansyrox in #647
- docs: add docs for plugins by @sansyrox in #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: v0.43.0...v0.44.0