Releases: reactive-python/reactpy-django
Releases · reactive-python/reactpy-django
3.4.0
Added
- Distributed Computing: ReactPy components can now optionally be rendered by a completely separate server!
REACTPY_DEFAULT_HOSTS
setting can round-robin a list of ReactPy rendering hosts.host
argument has been added to thecomponent
template tag to force components to render on a specific host.
reactpy_django.utils.register_component
function can manually register root components.- Useful if you have dedicated ReactPy rendering application(s) that do not use HTML templates.
Changed
- ReactPy will now provide a warning if your HTTP URLs are not on the same prefix as your websockets.
- Cleaner logging output for auto-detected ReactPy root components.
Deprecated
reactpy_django.REACTPY_WEBSOCKET_PATH
is deprecated. The identical replacement isREACTPY_WEBSOCKET_ROUTE
.settings.py:REACTPY_WEBSOCKET_URL
is deprecated. The similar replacement isREACTPY_URL_PREFIX
.
Removed
- Warning W007 (
REACTPY_WEBSOCKET_URL doesn't end with a slash
) has been removed. ReactPy now automatically handles slashes. - Warning W008 (
REACTPY_WEBSOCKET_URL doesn't start with an alphanumeric character
) has been removed. ReactPy now automatically handles this scenario. - Error E009 (
channels is not in settings.py:INSTALLED_APPS
) has been removed. Newer versions ofchannels
do not require installation viaINSTALLED_APPS
to receive an ASGI webserver.
3.3.2
Added
- ReactPy Websocket will now decode messages via
orjson
resulting in an ~6% overall performance improvement. - Built-in
asyncio
event loops are now patched vianest_asyncio
, resulting in an ~10% overall performance improvement. This has no performance impact if you are running your webserver withuvloop
.
Fixed
- Fix bug where
REACTPY_WEBSOCKET_URL
always generates a warning if unset. - Fixed bug on Windows where
assert f is self._write_fut
would be raised byuvicorn
whenREACTPY_BACKHAUL_THREAD = True
. - Fixed bug on Windows where rendering behavior would be jittery with
daphne
whenREACTPY_BACKHAUL_THREAD = True
.
3.3.1
Added
- Additional system checks for ReactPy misconfigurations.
Changed
REACTPY_BACKHAUL_THREAD
now defaults toFalse
.
3.3.0
Added
- Added system checks for a variety of common ReactPy misconfigurations.
REACTPY_BACKHAUL_THREAD
setting to enable/disable threading behavior.
Changed
- If using
settings.py:REACTPY_DATABASE
,reactpy_django.database.Router
must now be registered insettings.py:DATABASE_ROUTERS
. - By default, ReactPy will now use a backhaul thread to increase performance.
- Minimum Python version required is now
3.9
- A thread-safe cache is no longer required.
3.2.1
Added
- Template tag exception details are now rendered on the webpage when
settings.py:DEBUG
is enabled.
Fixed
- Prevent exceptions within the
component
template tag from causing the whole template to fail to render.
3.2.0
Added
- Added warning if poor system/cache/database performance is detected while in
DEBUG
mode. - Added
REACTPY_AUTH_BACKEND
setting to allow for custom authentication backends.
Changed
- Using
SessionMiddlewareStack
is now optional. - Using
AuthMiddlewareStack
is now optional.
3.1.0
Added
use_query
now supports async functions.use_mutation
now supports async functions.reactpy_django.types.QueryOptions.thread_sensitive
option to customize how sync queries are executed.reactpy_django.hooks.use_mutation
now acceptsreactpy_django.types.MutationOptions
option to customize how mutations are executed.
Changed
- The
mutate
argument onreactpy_django.hooks.use_mutation
has been renamed tomutation
.
Fixed
- Fix bug where ReactPy utilizes Django's default cache timeout, which can prematurely expire the component cache.
3.0.1
Removed
django-reactpy
database entries are no longer cleaned during Django application startup. Instead, it will occur on webpage loads ifREACTPY_RECONNECT_MAX
seconds has elapsed since the last cleaning.
3.0.1-legacy-idom
Changed
- Add warning to
django-idom
for users to usereactpy-django
instead.
3.0.0-reactpy
Changed
django-idom
has been renamed toreactpy-django
! Please note that all references to the wordidom
in your code should be changed toreactpy
. See the docs for more details.