Code Monkey home page Code Monkey logo

mux.jl's People

Contributors

amgad-naiem avatar aviks avatar bicycle1885 avatar bovine3dom avatar catawbasam avatar cmcaine avatar cpfiffer avatar cstjean avatar femtocleaner[bot] avatar github-actions[bot] avatar iainnz avatar jiahao avatar jpsamaroo avatar kobussch avatar maximsch2 avatar mikeinnes avatar pfitzseb avatar piever avatar quinnj avatar rdeits avatar rohitvarkey avatar sarvghotra avatar shashi avatar simeonschaub avatar simonbyrne avatar sjkelly avatar tanmaykm avatar tkelman avatar vdayanand avatar yfractal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mux.jl's Issues

@ sync broken on julia 1.0

on julia 1.0 even after defining @sync serve(app, 8000) julia just exits right away after the server is started.

but if i run the script file in the REPL it doesn't exit and the server keeps listening to the defined port.

I switched to julia-0.6.2 and it works as expected.

Thank you

we need more examples

I'm trying to build a mux based system, but we have no examples around setting headers, and how to put stuff in various parts of the chain.

I've tried...

#  Access-Control-Allow-Origin: *
function withCors(app, req)
  res = app(req)
  res.headers["Access-Control-Allow-Origin"] = "*"
  res
end

but, the app(req) is not a response object. and I have no way I can find of turning it into one.

The examples all seem to think that app(req) does give you a response object.

and if you want many of your pages to use the same middle layer AFTER the page call, how do you tell it to do that?

Tuple fix for 0.4

Mux is a dependency when loading Escher, and I had to make the following signature change in websockets.jl to load it in 0.4:

function todict(rc::Tuple{Request, WebSocket})

Support for HTTP verbs

Hi,

Any plans / progress on adding support for HTTP verbs?

What I have in mind is routing functions that would map to HTTP methods other than GET (which is now provided by "page" & co.): POST, PUT, PATCH, DELETE, etc.

Additionally, a "resource" routing function would be nice, something like:
resource("product", Product)
This would automatically map all the HTTP verbs to methods on the Product type,
ex:
GET "/products" would result in calling Product.index(req)
POST "/products" would result in calling Product.create(req)
PATCH "/products/:id" would result in calling Product.update(req)
DELETE "/products/:id" would result in calling Product.delete(req)
and so on.

If nobody works on this and it's found useful, I could try to add it, starting with the basic HTTP verbs function first.
I'm not entirely sure about the value of resources vs cognitive load to API users, though surely they'd be nice as a convenience method.

I guess the best approach would be to code them as middlewares that could eventually be included by default as part of the core.

-- Adrian

Time for a new release?

Hey,

Mux has been causing a lot of problems over at Escher recently. See JuliaGizmos/Escher.jl#66, JuliaGizmos/Escher.jl#62, JuliaGizmos/Escher.jl#53.

In the current state, it is broken on 0.3 and gives a ERROR: isexpr not defined while on 0.4 it freezes as mentioned in #10.

The good news is all these issues are fixed in master and Pkg.checkout("Mux") fixes things. It would be awesome if you could release a new version, solving this and not having to need the Pkg.checkout anymore! 😄

Thanks.
Rohit.

cc: @shashi

Path value absent in Request object

ulia> using Mux

julia> function df(req)
           @info "h1", req
       end
df (generic function with 1 method)

julia> @app test = (
         Mux.defaults,
         page(respond("<h1>Hello World!</h1>")),
         page("/about",
              probabilty(0.1, respond("<h1>Boo!</h1>")),
              respond("<h1>About Me</h1>")),
         page("/user/", df),
         Mux.notfound())

julia> serve(test)
Task (runnable) @0x00007f7a146aebf0

shell> curl -L http://localhost:8000/user/
[ Info: ("h1", Dict{Any,Any}(:query=>"",:method=>"GET",:params=>Dict{Any,Any}(),:path=>SubString{String}[],:cookies=>HTTP.Cookies.Cookie[],:uri=>HTTP.URI("/user/"),:data=>UInt8[],:headers=>Pair{SubString{String},SubString{String}}["Host"=>"localhost:8000", "User-Agent"=>"curl/7.58.0", "Accept"=>"*/*"]))

I am using Mux 0.7.0

Julia Version 1.1.0
Commit 80516ca202 (2019-01-21 21:24 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, broadwell)

stream data

I'm trying to figure out how to stream data with Mux.jl

I want the body to be taken from IOBuffer until the buffer is close. Any suggestion?

Need help to find all the paramteres of Request type.

Can someone please tell how to find all the params of a request ? Like req[:path], req[:cookie] etc.

I looked here but I didn't find user, cookies etc shown here. So is there a way to find about all of them. I am trying to contribute by writing routing middlewares.

Migrating from Meddle.jl to Mux.jl

Hi there,
This is a request for help rather than an issue with Mux.jl. Apologies if this belongs somewhere else.

I am trying to migrate example 4 in this project from Meddle.jl to Mux.jl. The Meddle version is in example_4_middleware_MEDDLE and the Mux version is in example_4_middleware, still under development.

As you can see in example_4_middleware/main_middleware.jl I'm building up to it and I'm having a little trouble understanding what's going on. What should the 2nd argument to Page() be? A function that takes a request and returns a response?

FYI - it may or may not help to know that both examples are functionally the same as example_3_servefiles, only the latter does not use middleware at all.

Cheers,
Jock

Const in app macro causes issue when starting webserver in Julia 1.0

When upgrading some code to Julia 1.0, I'm finding Mux failing on server.jl:26 with the error below. I haven't too much into the Mux code, but if the 'const' is removed, the code functions again. Local constants aren't supported in newer versions (not sure when that was supported/removed), but if it is ok, could you remove the keyword?

ERROR: LoadError: LoadError: syntax: unsupported `const` declaration on local variable around /home/gearsad/.julia/dev/Mux/src/server.jl:26
Stacktrace:
 [1] include at ./boot.jl:317 [inlined]
 [2] include_relative(::Module, ::String) at ./loading.jl:1041
 [3] include at ./sysimg.jl:29 [inlined]
 [4] include(::String) at /home/gearsad/.julia/dev/CaesarServer/src/CaesarServer.jl:1
 [5] top-level scope at none:0
 [6] include at ./boot.jl:317 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1041
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] top-level scope at none:2
 [10] eval at ./boot.jl:319 [inlined]
 [11] eval(::Expr) at ./client.jl:389
 [12] top-level scope at ./none:3
....

Make stacktraces more readable

Anyone who's run into an error somewhere within a Mux app knows that the stacktraces are pretty inscrutable, due to the rather heavy usage of anonymous functions. We should find a way to make stacktraces more readable without compromising performance (such as the overhead of including lots of try/catch blocks) and composability.

In parallel with generating nicer stacktraces, we should also consider a "debug mode" which would allow better introspection into "message flow" through an app, potentially at the detriment of performance if necessary. Making it easy to use any of the JuliaDebug packages to debug requests and responses would be very useful, IMO.

Help with breaking changes in `Mux.serve` on 0.7

It looks like the migration to HTTP caused some breaking changes in Mux.serve. This is the code that was previously used in WebIO:

julia> using Mux

julia> app = x -> nothing
#5 (generic function with 1 method)

julia> http = Mux.App(Mux.mux(
           Mux.defaults,
           app,
           Mux.notfound()
       ));

julia> websock = Mux.App(Mux.mux(
           Mux.wdefaults,
           Mux.route("/webio-socket", x -> nothing),
           Mux.wclose,
           Mux.notfound(),
       ));
┌ Warning: The `keep` keyword argument is deprecated; use `keepempty` instead
│   caller = ip:0x0
└ @ Core :-1

julia> Mux.serve(http, websock, 8000)
ERROR: MethodError: no method matching HTTP.Servers.Server(::HTTP.Handlers.HandlerFunction{getfield(Mux, Symbol("##7#8")){Mux.App}}, ::HTTP.Handlers.HandlerFunction{getfield(Mux, Symbol("##9#10")){Mux.App}})
Closest candidates are:
  HTTP.Servers.Server(::H<:HTTP.Handlers.Handler) where H<:HTTP.Handlers.Handler at /home/rdeits/.julia/dev/HTTP/src/Servers.jl:190
  HTTP.Servers.Server(::H<:HTTP.Handlers.Handler, ::IO; cert, key, args...) where H<:HTTP.Handlers.Handler at /home/rdeits/.julia/dev/HTTP/src/Servers.jl:190
Stacktrace:
 [1] serve(::Mux.App, ::Mux.App, ::Int64) at /home/rdeits/.julia/dev/Mux/src/server.jl:63
 [2] top-level scope at none:0

(tested with Mux master on Julia v0.7-beta2)

It looks like Mux is trying to construct an HTTP.Server from both handlers, but there's no method to do that.

Can you help me figure out how to migrate to the new API? Or is this just a bug?

Cannot disable full log in stdout

The app, no matter configured or not, emits "info" on each request. It slows down response time while testing it and wastes log, that must be used for other stuff.

UndefVarError: Server not defined

I am getting the following precompilation error on julia 1.1 with v0.6.0

julia> using Mux
[ Info: Precompiling Mux [a975b10e-0019-58db-a62f-e48ff68538c9]
WARNING: could not import HTTP.HandlerFunction into Mux
ERROR: LoadError: LoadError: UndefVarError: Server not defined
Stacktrace:
 [1] top-level scope at none:0
 [2] include at .\boot.jl:326 [inlined]
 [3] include_relative(::Module, ::String) at .\loading.jl:1038
 [4] include at .\sysimg.jl:29 [inlined]
 [5] include(::String) at C:\Users\Maxime\.julia\packages\Mux\a0IXM\src\Mux.jl:1
 [6] top-level scope at none:0
 [7] include at .\boot.jl:326 [inlined]
 [8] include_relative(::Module, ::String) at .\loading.jl:1038
 [9] include(::Module, ::String) at .\sysimg.jl:29
 [10] top-level scope at none:2
 [11] eval at .\boot.jl:328 [inlined]
 [12] eval(::Expr) at .\client.jl:404
 [13] top-level scope at .\none:3
in expression starting at C:\Users\Maxime\.julia\packages\Mux\a0IXM\src\server.jl:56
in expression starting at C:\Users\Maxime\.julia\packages\Mux\a0IXM\src\Mux.jl:24
ERROR: Failed to precompile Mux [a975b10e-0019-58db-a62f-e48ff68538c9] to C:\Users\Maxime\.julia\compiled\v1.1\Mux\cs9xb.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1197
 [3] _require(::Base.PkgId) at .\loading.jl:960
 [4] require(::Base.PkgId) at .\loading.jl:858
 [5] require(::Module, ::Symbol) at .\loading.jl:853

Any idea on how to fix this? Thanks

Possible bug with either websockets or access to widget in page

This popped up on me recently and haven't been able to figure out what went wrong. No bites on discourse so might be a real issue. As the example code should replicate, when accessing a widget from "/" it is responsive and "clicked" is printed in the REPL, while "/page1" is unresponsive for the same required widget. Not the behavior I was expecting or experiencing previously.

I do get a websockets error (pasted below) but unclear why it would selectively affect the "/page1" endpoint. Hopefully this is an obvious fix, but I was able to replicate the issue locally and on an aws server, both running Julia 1.0.2, Mux v0.5.3 and Interact v0.9.0. Thinking this is a Mux issue and not an interact issue because of the websocket error and the widget working at least for the "/" endpoint.

Thank you for any help you can provide!
Andrew

Error:

Error handling websocket connection: WebSockets.WebSocketClosedError(“ws|server respond to OPCODE_CLOSE 1001:Going Away”)"

Example code:

using Mux, Interact                                                                                                                                                       
                                                                                                                                                                                  
 # setting up Interact.jl widget                                                                                                                                                  
 b = button("Test click")                                                                                                                                                         
 on(n -> println("clicked"), b)                                                                                                                                        
                                                                                                                                                                                  
 # putting together apps for root and id1 page using same widget                                                                                                                  
 app1 = page("/", req -> b)                                                                                                                                                    
 app2 = page("/page1", req -> b)                                                                                                                                                       
                                                                                                                                                                                  
 # stacking together                                                                                                                                                              
 app = Mux.stack(app1, app2)                                                                                                                                                 
                                                                                                                                                                                  
 # serving                                                                                                                                                                        
 WebIO.webio_serve(app, 8000) 

add @sync to example

When I run the first example in a Julia file, Julia exits before the web server starts. I think the example should be amended:

@sync serve(test)

Notably, without this it doesn't print out any sort of message. I had to read the mux code to find out what was going on.

blocking serve

is there a blocking version of the serve function? when I launch my web server I want to be able to leave it running forever. I'm happy to put a

serve(app, port)
waitforever()

into my app but I think it would be useful to have a serve_sync function. what do you think?
I'm happy to raise a pull request if you think this is a good idea.

Connection reset by peer

I'm having trouble with a fairly simple example, using curl I'm always getting connection reset by peer.

using Mux

println("Starting")

@app routes = (
  Mux.defaults,
        page(respond("Healthy")),
  Mux.notfound())

serve(routes, ENV["PORT"])

println("Done starting")

Base.JLOptions().isinteractive==0 && wait()

Mux entry in manifest

[[Mux]]                                                                                                                              
deps = ["AssetRegistry", "Base64", "HTTP", "Hiccup", "Lazy", "Pkg", "Sockets", "WebSockets"]                                         
git-tree-sha1 = "3621676e7f711aca14d783d1bff9ac379d9df6b7"
uuid = "a975b10e-0019-58db-a62f-e48ff68538c9"
version = "0.7.1"

curl -v

curl -v localhost:9000                                                                         
* Rebuilt URL to: localhost:9000/
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 9000 (#0)
> GET / HTTP/1.1
> Host: localhost:9000
> User-Agent: curl/7.52.1
> Accept: */*
>
* Recv failure: Connection reset by peer
* Curl_http_done: called premature == 1
* stopped the pause stream!
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

Any suggestions?

Add Websockets tests

We support WebSockets.jl integration but have no tests that actually exercise it. Since it's a direct dependency, it should be covered by the test suite.

notfound() responds with 200 error code

Cool library. It looks like notfound() isn't setting the status code though.

using Mux

@app test = (
  Mux.defaults,
  page(respond("<h1>Hello World!</h1>")),
  Mux.notfound())

serve(test)
curl -v http://127.0.0.1:8000/404_plz
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8000 (#0)
> GET /nod HTTP/1.1
> Host: 127.0.0.1:8000
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: keep-alive
< Content-Length: 9
< Content-Type: text/html; charset=utf-8
< Date: Sat, 31 Oct 2015 08:12:47
< Content-Language: en
< Server: Julia/0.4.0
<
* Connection #0 to host 127.0.0.1 left intact
Not found

After some digging, it looks like this is because of a (mis?)use of the Lazy.jl @d macro:

# from Mux.jl/src/examples/basic.jl
notfound(s = "Not found") = mux(status(404), respond(s))

# from Mux.jl/src/basics.jl
reskey(k, v) = post(res -> merge!(res, @d(k=>v)))

status(s) = reskey(:status, s)

Which unfortunately seems to do something other than what's intended by that line...

julia> k = 10
10

julia> @d(k => 1)
Dict{Any,Any} with 1 entry:
  :k => 1

I can fork and define reskey(k, v) = post(res -> merge!(res, Dict(k=>v))) if you'd like. I have to admit I'm confused about what precisely @d is intended to do, so I'm asking first.

req object type

req seems to be of type Dict{Any,Any}, couldn't Dict{Symbol, Any} be a bit more specific? All keys seem to be symbols. It could also be good to add the values for each key of req in the README

using Mux throws an error on 0.4

ERROR: LoadError: LoadError: UndefVarError: @errs not defined
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:129
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:129
 in reload_path at ./loading.jl:153
 in _require at ./loading.jl:68
 in require at ./loading.jl:51
while loading /home/amitm/.julia/v0.4/Mux/src/server.jl, in expression starting on line 46
while loading /home/amitm/.julia/v0.4/Mux/src/Mux.jl, in expression starting on line 22

Configure rate_limits

Hi, I cannot figure out how to configure rate limits, any suggestions? I think it's the HTTP.listen rate_limits param, but how do I set it from the Mux.serve?
Thanks

Middleware stacking and the response dict

I might be missing something, but it seems to me that I can push middlewares at the beginning of the stack, before the routes are evaluated; but once a route is matched, the response is sent directly to the browser, skipping middlewares added after the routing.

For practical purposes, the routing middleware should, like any other middleware, have access to and modify the request and response dictionaries, and return them to the next middleware in the stack. An obvious application of this is a response logger. I've been able to add a request logger at the top of the middlewares stack, but the response logger, added at the bottom of the middleware stack is never called.

Any advice on how could this be achieved? (a)

Related to this, can you please point me in the right direction in regards to:
(b) how can I get access to the response dict, similar to the request dict (in HttpServer they're both used equally)
(c) how can I setup communication between HttpServer and Mux so that for example application errors are logged back to the console / logger, rather than only having them displayed in the web page response (imagine an app running unmanaged in production, devs would never know about errors displayed to users).

Turn on precompilation

I noticed this while running an automatic "recompile everything" script: since this package is used by others for which __precompile__(true), this package needs it too.

Warning on build regarding HTTP.stack

When building Mux, the following warning is displayed:

WARNING: using HTTP.stack in module Mux conflicts with an existing identifier.

This can be fixed easily by changing the using HTTP statements (in 2 places) to using HTTP: HTTP

This looks a bit odd and I could not find this particular syntax in the documentation anywhere, but it works. What it does is to just make the module HTTP reachable within Mux and its included files, without actually bringing all the names exported by HTTP into the Mux scope. Among the exports is stack. Mux has its own declaration of stack, which is causing the conflict.

In Mux all references to HTTP internals are done with dot-syntax so it is not necessary to bring into Mux any of the HTTP exports. Only the namespace of the module HTTP is needed and this is what the suggested code achieves.

I can provide the necessary PR if the above change sounds acceptable

Kobus

Server on 0.0.0.0

using Mux

@app test = (
  Mux.defaults,
  page(respond("<h1>Hi</h1")),
  Mux.notfound())
@sync serve(test, port=1234)

Only spawns a Server on 0.0.0.0:1234
how is that changeable ? host=127.0.0.1 in the serve doesnt work

Tag new release?

Master doesn't have depwarns but the latest tagged release does, so could you tag a new release?

question about API

I thought I knew a bit of Julia, but I am still a newbie. I am trying to see how you would define a route that only match POST (and a different function for GET/OPTION). "p" is the path ... I do not see anywhere the METHOD is considered in matching.

route(p, app...) = branch(req -> matchpath!(p, req), app...)
route(p::AbstractString, app...) = route(splitpath(p), app...)
route(app::Function, p) = route(p, app)

Also, if I use @app ....and I have a few lines for each route ....this function get huge!

@app app = (
Mux.defaults,
#page("/about", req -> hello(req)),
#method("GET",
#route("Hello world!", "/about"),
route(get_meta,"/api/p3meta"),
Mux.notfound()
)

can I add after defining app?

Ambiguity warning in div method

In examples/files.jl, for example, constructing an HTML div element throws a warning on 0.4:

Warning: both Hiccup and Base export "div"; uses of it in module Mux must be qualified

LoadError: None of the selected providers can install dependency [nettle|GnuTLS].

Hi,

I don't know if this is an issue with Mux, but when I try to add Mux, I get some errors. I copied below my latest attempt. I'm on a Windows Server on an Azure VM with Julia 0.4 rc1.

It looks like I can grab all required packages except Nettle and GnuTLS.

Any ideas? Thanks

julia> Pkg.update()
INFO: Updating METADATA...
INFO: Updating cache of BinDeps...
INFO: Updating cache of SHA...
INFO: Updating cache of Docile...
INFO: Computing changes...
INFO: Upgrading BinDeps: v0.3.15 => v0.3.16
INFO: Upgrading Docile: v0.5.18 => v0.5.19
INFO: Upgrading SHA: v0.1.1 => v0.1.2

julia> Pkg.checkout("Mux")
INFO: Checking out Mux master...
INFO: Pulling Mux latest master...
INFO: No packages to install, update or remove

julia> Pkg.build("Mux")
INFO: Building HttpParser
INFO: Building WinRPM
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/repomd.xml
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/7a833a399a331e96db98ada98a76ed38c7938db5ab8c228f50e8cf4d505283b1-pri
mary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 1/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/7a833a399a331e96db98ada98a76ed38c7938db5ab8c228f50e8cf
4d505283b1-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 2/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/7a833a399a331e96db98ada98a76ed38c7938db5ab8c228f50e8cf
4d505283b1-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 3/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/7a833a399a331e96db98ada98a76ed38c7938db5ab8c228f50e8cf
4d505283b1-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 4/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/7a833a399a331e96db98ada98a76ed38c7938db5ab8c228f50e8cf
4d505283b1-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 5/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/7a833a399a331e96db98ada98a76ed38c7938db5ab8c228f50e8cf
4d505283b1-primary.xml.gz
WARNING: received error 0 while downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/repodata/7a833a399a331e96db98ada98a76ed38c7938db5ab
8c228f50e8cf4d505283b1-primary.xml.gz
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/repomd.xml
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/d261b71262ba05d3f6598be3de875ce921b225cc15e49ed2bd844600b506ef1c-pri
mary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 1/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/d261b71262ba05d3f6598be3de875ce921b225cc15e49ed2bd8446
00b506ef1c-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 2/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/d261b71262ba05d3f6598be3de875ce921b225cc15e49ed2bd8446
00b506ef1c-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 3/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/d261b71262ba05d3f6598be3de875ce921b225cc15e49ed2bd8446
00b506ef1c-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 4/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/d261b71262ba05d3f6598be3de875ce921b225cc15e49ed2bd8446
00b506ef1c-primary.xml.gz
WARNING: Unknown download failure, error code: 2148270088
WARNING: Retry 5/5 downloading: https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/d261b71262ba05d3f6598be3de875ce921b225cc15e49ed2bd8446
00b506ef1c-primary.xml.gz
WARNING: received error 0 while downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/repodata/d261b71262ba05d3f6598be3de875ce921b225cc15
e49ed2bd844600b506ef1c-primary.xml.gz
INFO: Building Nettle
===========================================================================================[ ERROR: Nettle ]============================================================================================

LoadError: None of the selected providers can install dependency nettle.
Use BinDeps.debug(package_name) to see available providers

while loading C:\Users\Eric.Forgy.julia\v0.4\Nettle\deps\build.jl, in expression starting on line 39

INFO: Building GnuTLS
===========================================================================================[ ERROR: GnuTLS ]============================================================================================

LoadError: None of the selected providers can install dependency gnutls.
Use BinDeps.debug(package_name) to see available providers

while loading C:\Users\Eric.Forgy.julia\v0.4\GnuTLS\deps\build.jl, in expression starting on line 59

============================================================================================[ BUILD ERRORS ]============================================================================================

WARNING: Nettle and GnuTLS had build errors.

  • packages with build errors remain installed in C:\Users\Eric.Forgy.julia\v0.4
  • build the package(s) and all dependencies with Pkg.build("Nettle", "GnuTLS")
  • build a single package by running its deps/build.jl script

Error in POST request

I'm using a route with the POST method:

route("/teste",req->method("POST",withHeaders(meuteste(req), req)))

but I'm always having the following error:

MethodError: no method matching show(::IOContext{Base.AbstractIOBuffer{Array{UInt8,1}}}, ::MIME{Symbol("text/html")}, ::Mux.##5#6{Mux.##29#30{String},Dict{Symbol,Any}})...

Could someone tell me what's wrong?

Reload not working

When overwriting a already served app with the @app macro, as described in the readme, the server does not update :(
Anyone else got this problem?

Using Julia 1.0.1 on MacOS

Problems with adding Mux on Julia 1.0.1

Hi everyone,

I am new to julia and experience problems using Julia Pro 1.0.1 installation on Windows 10.
I get the following Error:

ERROR: Unsatisfiable requirements detected for package WebSockets [104b5d7c]:
WebSockets [104b5d7c] log:
├─possible versions are: [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0, 1.0.0-1.0.3]
or uninstalled
├─restricted by julia compatibility requirements to versions: 1.0.0-1.0.3 or uninstalled
├─restricted by compatibility requirements with Mux [a975b10e] to versions: [0.0.1-0.0.6, 0.1.0-0.1
.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0, 1.0.0-1.0.3], leaving only versions: 1.0.0-1.0.3
│ └─Mux [a975b10e] log:
│ ├─possible versions are: [0.1.0-0.1.1, 0.2.0-0.2.3, 0.3.0-0.3.1, 0.4.0, 0.5.0-0.5.3] or uninsta
lled
│ ├─restricted to versions * by an explicit requirement, leaving only versions [0.1.0-0.1.1, 0.2.
0-0.2.3, 0.3.0-0.3.1, 0.4.0, 0.5.0-0.5.3]
│ └─restricted by julia compatibility requirements to versions: [0.3.1, 0.4.0, 0.5.0-0.5.3] or un
installed, leaving only versions: [0.3.1, 0.4.0, 0.5.0-0.5.3]
└─restricted by compatibility requirements with HTTP [cd3eb016] to versions: [0.0.1-0.0.6, 0.1.0-0.
1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0] or uninstalled — no versions left
└─HTTP [cd3eb016] log:
├─possible versions are: 0.7.0 or uninstalled
└─restricted to versions * by an explicit requirement, leaving only versions 0.7.0


Is that an known issue or can anyone help?

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.