Comments (7)
I managed to use Revise with this script:
using Pkg
Pkg.activate(@__DIR__)
using Revise: entr, revise
using MyApp
const t = MyApp.main() # call serve(app), nothing special
entr(String[], [MyApp]; all = true) do
revise(MyApp)
end
from mux.jl.
Ah, yes, that's a nice simple approach! Very nice 😃 Would you be happy to make a PR adding something like this to the readme?
from mux.jl.
I've gotten my baby TodoMVC.jl to work with this glue. It's not great, I still think Mux.jl
may be the most appropriate place for targeting this sort of developer oriented workflow. The bulk of the work happens in live_server.jl which probably needs a different name, but if it could be integrated here, that might be useful.
from mux.jl.
I think that having Mux work with Revise is worthwhile, but I'm not totally sold on this approach. I don't really like that we're closing and re-opening the socket, either, though maybe that's fine.
Re-evaluating the @app
expression should be sufficient for Mux.serve
to use the latest version of the code. Perhaps we can do something with that?
Looking at the revise docs, it seems like Revise.includet
doesn't evaluate data definitions again if they change in the file, it just evaluates them on the first go around, then updates only methods. Which would explain why the top-level statements generated by the macro aren't being re-evaluated when they change. There might be something we can do there with Revise.track
directly (though my initial attempts at that aren't succeeding).
from mux.jl.
I think that having Mux work with Revise is worthwhile, but I'm not totally sold on this approach.
Awesome. We're on the same page. I don't like the opening/closing of the socket either. Frankly, there's parts of the code I don't grok.
Which would explain why the top-level statements generated by the macro aren't being re-evaluated when they change.
With the existing TodoMVC, it did re-evaluate the @app
macro, I think it only worked due to the clever if/else logic there. I've not tried an example using with Revise.includet
.
from mux.jl.
Stumbling upon this because also for me it seems that revise is not working with Mux.jl which is very unfortunate...
Are there any updates on makeing Revise work with Mux.jl?
from mux.jl.
I just found a simple way: not to use @app
.
I guess the advantage that Revise works out of the box like this is really huge.
module MyModule
using Mux: serve, mux, App
myserve(req) = req |> mux(
...
)
function main()
serve(App(myserve), 1234)
end
end # module
Looks only very slightly alien ;-) but as Revise works and we have one macro less, I am actually quite happy with it.
from mux.jl.
Related Issues (20)
- TagBot trigger issue HOT 6
- Add me as a collaborator? HOT 3
- Road to v1 HOT 1
- Error on first request from Firefox HOT 9
- installing Mux v0.7.4 downgrades HTTP v0.9.2 HOT 2
- public interface for regression tests? HOT 4
- No :socket key in websocket server object HOT 3
- How to combine method & route ? HOT 1
- `serve` method to integrate websockets broken
- Rest api? HOT 1
- Is there WSS option in Mux v1.0.1? HOT 1
- Precompiling hangs on latest Julia nightly HOT 1
- Feature Request: let splitpath also handle the query intelligently
- Let `response` return a `HTTP.Response` object HOT 6
- Make `http_handler` part of `defaults` and `ws_handler` part of `wdefaults` HOT 1
- WebSockets example in README is slightly broken HOT 2
- Tests broken due to HTTP.jl
- Disable AppVeyor builds
- Tag a version HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mux.jl.