Code Monkey home page Code Monkey logo

httpclient.jl's People

Contributors

amitmurthy avatar iainnz avatar ihnorton avatar phanalpha avatar quinnj avatar ranjanan avatar srp avatar tkelman avatar tmlbl avatar westleyargentum avatar

Stargazers

 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

httpclient.jl's Issues

get doesn't compile

With 0.3.10 on x86_64 windows with HTTPClient 0.1.5, I can't use get. The first time I run it I see

s = get("http://google.com")
error compiling get: error compiling setup_easy_handle: 
while loading In[5], in expression starting on line 1

 in get at C:\Users\amellnik\.julia\v0.3\HTTPClient\src\HTTPC.jl:534

and running it subsequent times shows

error compiling get: 
while loading In[6], in expression starting on line 1

 in get at C:\Users\amellnik\.julia\v0.3\HTTPClient\src\HTTPC.jl:534

[PkgEval] HTTPClient may have a testing issue on Julia 0.3 (2014-05-21)

PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.2) and the nightly build of the unstable version (0.3). The results of this script are used to generate a package listing enhanced with testing results.

On Julia 0.3

  • On 2014-05-20 the testing status was Tests pass..
  • On 2014-05-21 the testing status changed to Tests fail, but package loads..

Tests pass. means that PackageEvaluator found the tests for your package, executed them, and they all passed.

Tests fail, but package loads. means that PackageEvaluator found the tests for your package, executed them, and they didn't pass. However, trying to load your package with using worked.

This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.

Feature Request for 'Streaming Requests'

'Streaming Requests' is a feature that is implemented by the Python package 'Requests': http://docs.python-requests.org/en/latest/user/advanced/#streaming-requests

It would be great to have the same feature in HTTPClient.jl.

A sample use case would be iterating over streaming API's. For example, a GET request that returns a continuous stream of json objects.

My specific need is being able to monitor a remote sensor that returns continuous voltage readings (in json format) in response to a GET call.

Thanks,

Bryan Daniels

JSON dependency only for tests?

##### Current package: HTTPClient
INFO: Installing HTTPClient v0.1.0
INFO: Installing LibCURL v0.1.0
INFO: REQUIRE updated.
ERROR: JSON not found
 in require at loading.jl:39
 in include at boot.jl:238
at /home/idunning/pkgtest/.julia/v0.2/HTTPClient/test/tests.jl:2
INFO: Removing HTTPClient v0.1.0
INFO: Removing LibCURL v0.1.0
INFO: REQUIRE updated.

Just wanted to check that JSON dependency is only for testing, and not in general? Is so, I'll make sure to add that exception.

Response.headers drops headers with duplicate keys

Request.headers is a Vector{Tuple}, but Response.headers is currently a Dict{ASCIIString, ASCIIString}. The problem with the later that duplicate headers in the response get dropped. For example, if the server responds with multiple "Set-Cookie" headers, only one is kept in the Response.headers data structure.

Vector{Tuple} would solve the problem, but is then O(N) and a pain for callers to pull headers out of.

Another option that come to mind is Dict{ASCIIString, Vector{ASCIIString}}

Question: setting libCurl options ?

Hi, sorry if this is not the right place to ask this question, but I don't see much alternative.

So, I'm using HTTPClient.jl to read some webpages and it works pretty well, but I get into troubles with some websites, which for example tells me I don't have a browser that support frames.

Is it possible to set libcurl options, like CURLOPT_USERAGENT with HTTPClient.jl to fix this kind of issues ? I've looked into the tests but it's not too clear to me.

Thanks!

Julia 0.7.0 win 64 error


> julia> using HTTPClient.HTTPC
> [ Info: Precompiling HTTPClient [0862f596-cf2d-50af-8ef4-f2be67dfa83f]
> ┌ Warning: Deprecated syntax `type` at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:18.
> │ Use `mutable struct` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:18
> ┌ Warning: Deprecated syntax `type` at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:32.
> │ Use `mutable struct` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:32
> ┌ Warning: Deprecated syntax `type` at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:56.
> │ Use `mutable struct` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:56
> ┌ Warning: Deprecated syntax `type` at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:66.
> │ Use `mutable struct` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:66
> ┌ Warning: Deprecated syntax `immutable` at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:78.
> │ Use `struct` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:78
> ┌ Warning: Deprecated syntax `type` at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:84.
> │ Use `mutable struct` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:84
> WARNING: importing deprecated binding Base.trace into HTTPC.
> WARNING: importing deprecated binding Base.Void into HTTPC.
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:18
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:66
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:99
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:109
> ┌ Warning: `cfunction(f, r, a::Tuple)` is deprecated, use `cfunction(f, r, Tuple{a...})` instead.
> │   caller = top-level scope at none:0
> └ @ Core none:0
> ┌ Warning: The function `cfunction` is now written as a macro `@cfunction`.
> │   caller = cfunction(::Function, ::Type, ::NTuple{4,DataType}) at deprecated.jl:55
> └ @ Base .\deprecated.jl:55
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:111
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:132
> ┌ Warning: `cfunction(f, r, a::Tuple)` is deprecated, use `cfunction(f, r, Tuple{a...})` instead.
> │   caller = top-level scope at none:0
> └ @ Core none:0
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:135
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> ┌ Warning: `cfunction(f, r, a::Tuple)` is deprecated, use `cfunction(f, r, Tuple{a...})` instead.
> │   caller = top-level scope at none:0
> └ @ Core none:0
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:156
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:160
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:160
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:160
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:185
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:185
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:185
> ┌ Warning: `cfunction(f, r, a::Tuple)` is deprecated, use `cfunction(f, r, Tuple{a...})` instead.
> │   caller = top-level scope at none:0
> └ @ Core none:0
> ┌ Warning: The function `cfunction` is now written as a macro `@cfunction`.
> │   caller = cfunction(::Function, ::Type, ::NTuple{5,DataType}) at deprecated.jl:55
> └ @ Base .\deprecated.jl:55
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:189
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:189
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:199
> WARNING: Base.Void is deprecated, use Nothing instead.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:199
> ┌ Warning: `cfunction(f, r, a::Tuple)` is deprecated, use `cfunction(f, r, Tuple{a...})` instead.
> │   caller = top-level scope at none:0
> └ @ Core none:0
> ┌ Warning: The function `cfunction` is now written as a macro `@cfunction`.
> │   caller = cfunction(::Function, ::Type, ::Tuple{DataType,DataType,DataType}) at deprecated.jl:55
> └ @ Base .\deprecated.jl:55
> WARNING: Base.trace is deprecated: it has been moved to the standard library package `LinearAlgebra` as `tr`.
> Add `using LinearAlgebra` to your imports.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:529
> WARNING: Base.trace is deprecated: it has been moved to the standard library package `LinearAlgebra` as `tr`.
> Add `using LinearAlgebra` to your imports.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:529
> WARNING: Method definition get(AbstractString) in module HTTPC at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\s
> rc\HTTPC.jl:379 overwritten at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:534.
> WARNING: Method definition head(AbstractString) in module HTTPC at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\
> src\HTTPC.jl:511 overwritten at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:534.
> WARNING: Method definition delete(AbstractString) in module HTTPC at C:\Users\PC\.julia\packages\HTTPClient\ZQR5
> 5\src\HTTPC.jl:528 overwritten at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:534.
> WARNING: Base.trace is deprecated: it has been moved to the standard library package `LinearAlgebra` as `tr`.
> Add `using LinearAlgebra` to your imports.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:533
> WARNING: Method definition tr(AbstractString) in module HTTPC at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\sr
> c\HTTPC.jl:529 overwritten at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:534.
> WARNING: Base.trace is deprecated: it has been moved to the standard library package `LinearAlgebra` as `tr`.
> Add `using LinearAlgebra` to your imports.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:533
> WARNING: Base.trace is deprecated: it has been moved to the standard library package `LinearAlgebra` as `tr`.
> Add `using LinearAlgebra` to your imports.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:533
> WARNING: Base.trace is deprecated: it has been moved to the standard library package `LinearAlgebra` as `tr`.
> Add `using LinearAlgebra` to your imports.
>   likely near C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:533
> WARNING: Method definition options(AbstractString) in module HTTPC at C:\Users\PC\.julia\packages\HTTPClient\ZQR
> 55\src\HTTPC.jl:530 overwritten at C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:534.
> ┌ Warning: Deprecated syntax `parametric method syntax urlencode_query_params{T <: Tuple}(params::Vector{T})` ar
> ound C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:569.
> │ Use `urlencode_query_params(params::Vector{T}) where T <: Tuple` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:569
> ┌ Warning: Deprecated syntax `parametric method syntax urlencode_query_params{T <: Tuple}(curl, params::Vector{T
> })` around C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:581.
> │ Use `urlencode_query_params(curl, params::Vector{T}) where T <: Tuple` instead.
> └ @ C:\Users\PC\.julia\packages\HTTPClient\ZQR55\src\HTTPC.jl:581

Problem with the SSL CA cert

Following up on this issue in the AWS library: JuliaCloud/AWS.jl#33.

I made the recommended change, and now I get the following error:

Error executing request : Problem with the SSL CA cert (path? access rights?)
in exec_as_multi at C:\Users\Andrew Martin.julia\v0.3\HTTPClient\src\HTTPC.jl:
702
in get at C:\Users\Andrew Martin.julia\v0.3\HTTPClient\src\HTTPC.jl:371

POST results in ERROR: no method pointer(ASCIIString,)

This is reproducible in the repl (Julia 0.2.1):

$ exec '/Applications/Julia-0.2.1.app/Contents/Resources/julia/bin/julia'
_
_ _ ()_ | A fresh approach to technical computing
() | () () | Documentation: http://docs.julialang.org
_ _ | | __ _ | Type "help()" to list help topics
| | | | | | |/ ` | |
| | |
| | | | (
| | | Version 0.2.1 (2014-02-11 06:30 UTC)
/ |_'|||__'| | Official http://julialang.org/ release
|__/ | x86_64-apple-darwin12.5.0

julia> using HTTPClient.HTTPC
julia> result = HTTPC.post("http://localhost:9999/foo/bar","foo")
ERROR: no method pointer(ASCIIString,)
in _put_post at /Users/marc/.julia/v0.2/HTTPClient/src/HTTPC.jl:480
in put_post at /Users/marc/.julia/v0.2/HTTPClient/src/HTTPC.jl:454
in post at /Users/marc/.julia/v0.2/HTTPClient/src/HTTPC.jl:388

Test failed; 'Please call curl_multi_perform() soon'

I am getting a weird error on my linux environment. I don't have any problems on Travis CI so it must be some system specific problem, only the error message seems to be related to usage of libcurl? rather than a failed build of some kind... so I thought it might be worth opening an issue in case this is related to something more general?

julia> Pkg.test("HTTPClient")
INFO: Computing test dependencies for HTTPClient...
INFO: Cloning cache of JSON from git://github.com/JuliaLang/JSON.jl.git
INFO: Installing JSON v0.7.0
INFO: Testing HTTPClient
ERROR: LoadError: curl_multi_perform() failed: Please call curl_multi_perform() soon
 in error at ./error.jl:21
 in exec_as_multi at /home/blencowe/blencowe2/timsw/.julia/v0.4/HTTPClient/src/HTTPC.jl:689
 in _put_post at /home/blencowe/blencowe2/timsw/.julia/v0.4/HTTPClient/src/HTTPC.jl:499
 in put_post at /home/blencowe/blencowe2/timsw/.julia/v0.4/HTTPClient/src/HTTPC.jl:469
 in post at /home/blencowe/blencowe2/timsw/.julia/v0.4/HTTPClient/src/HTTPC.jl:403
 in post at /home/blencowe/blencowe2/timsw/.julia/v0.4/HTTPClient/src/HTTPC.jl:542
 in include at ./boot.jl:261
 in include_from_node1 at ./loading.jl:320
 in process_options at ./client.jl:280
 in _start at ./client.jl:378
while loading /home/blencowe/blencowe2/timsw/.julia/v0.4/HTTPClient/test/runtests.jl, in expression starting on line 9
=============================================================================[ ERROR: HTTPClient ]==============================================================================

failed process: Process(`/home/blencowe/blencowe2/timsw/bin/julia-2e358ce975/bin/julia --check-bounds=yes --code-coverage=none --color=yes /home/blencowe/blencowe2/timsw/.julia/v0.4/HTTPClient/test/runtests.jl`, ProcessExited(1)) [1]

================================================================================================================================================================================
INFO: Removing JSON v0.7.0
ERROR: HTTPClient had test errors
 in error at ./error.jl:21
 in test at pkg/entry.jl:803
 in anonymous at pkg/dir.jl:31
 in cd at file.jl:22
 in cd at pkg/dir.jl:31
 in test at pkg.jl:71
$ julia -e 'versioninfo()'
Julia Version 0.4.6
Commit 2e358ce (2016-06-19 17:16 UTC)
Platform Info:
  System: Linux (x86_64-unknown-linux-gnu)
  CPU: Dual-Core AMD Opteron(tm) Processor 8218
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Opteron)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

Any ideas as to what is going on?

no method urlencode_query_params

This is breaking the codespeed test/perf code, not sure what caused it but it's only in recent (within a week) versions of Julia that this happens:

# mytest.jl
using HTTPClient.HTTPC
using JSON
data = {"project" => "Julia"}
post( "http://google.com", {"json" => json([data])}) 
$ julia mytest.jl
ERROR: no method urlencode_query_params(Array{(Any,Any),1})
while loading /Users/sabae/tmp/julia_recipe_build_area/julia-openblas/test/perf/mytest.jl, in expression starting on line 5

Deprecate in favor of Requests.jl?

Is there something this does that Requests.jl doesn't? If so, I'd prefer to get that functionality into Requests.jl so there is only one canonical HTTP client in JuliaWeb. cc @amitmurthy - looks like you are the primary contributor.

Change in Composite Type Keyword

It looks like Juila 1.0.2 now uses the keyword "struct" to define composite types. The HTTPClient package does not build or precompile unless this is changed.

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.