├── .github
└── workflows
│ └── workflow.yml
├── .gitignore
├── CHANGES.md
├── LICENSE.md
├── Makefile
├── README.md
├── docs
├── _config.yml
├── ez-api
│ ├── EzAPI
│ │ ├── .dune-keep
│ │ ├── Arg
│ │ │ ├── Ty
│ │ │ │ ├── index.html
│ │ │ │ └── module-type-Ty
│ │ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Doc
│ │ │ └── index.html
│ │ ├── Err
│ │ │ ├── IntMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Error_codes
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ ├── Meth
│ │ │ └── index.html
│ │ ├── Mime
│ │ │ └── index.html
│ │ ├── Param
│ │ │ └── index.html
│ │ ├── Path
│ │ │ └── index.html
│ │ ├── Req
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Security
│ │ │ ├── StringSet
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Service
│ │ │ ├── IO
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── TYPES
│ │ │ └── index.html
│ │ ├── Url
│ │ │ ├── TYPES
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIJS
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerCohttp
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerCohttp__
│ │ ├── .dune-keep
│ │ ├── Ws
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerCohttp__Ws
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerHttpAf
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils
│ │ ├── .dune-keep
│ │ ├── Answer
│ │ │ └── index.html
│ │ ├── Directory
│ │ │ ├── MethMap
│ │ │ │ └── index.html
│ │ │ ├── Step
│ │ │ │ └── index.html
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── File
│ │ │ ├── FileString
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── GMTime
│ │ │ └── index.html
│ │ ├── Ip
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ ├── StringMap
│ │ │ └── index.html
│ │ ├── Timings
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__
│ │ ├── .dune-keep
│ │ ├── Answer
│ │ │ └── index.html
│ │ ├── Directory
│ │ │ ├── MethMap
│ │ │ │ └── index.html
│ │ │ ├── Step
│ │ │ │ └── index.html
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── File
│ │ │ ├── FileString
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── GMTime
│ │ │ └── index.html
│ │ ├── Ip
│ │ │ └── index.html
│ │ ├── Timings
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__Answer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils__Directory
│ │ ├── .dune-keep
│ │ ├── MethMap
│ │ │ └── index.html
│ │ ├── Step
│ │ │ └── index.html
│ │ ├── StringMap
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__File
│ │ ├── .dune-keep
│ │ ├── FileString
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__GMTime
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils__Ip
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils__Timings
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI_
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__
│ │ ├── .dune-keep
│ │ ├── Arg
│ │ │ ├── Ty
│ │ │ │ ├── index.html
│ │ │ │ └── module-type-Ty
│ │ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Doc
│ │ │ └── index.html
│ │ ├── Err
│ │ │ ├── IntMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Error_codes
│ │ │ └── index.html
│ │ ├── Meth
│ │ │ └── index.html
│ │ ├── Mime
│ │ │ └── index.html
│ │ ├── Param
│ │ │ └── index.html
│ │ ├── Path
│ │ │ └── index.html
│ │ ├── Req
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Security
│ │ │ ├── StringSet
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Service
│ │ │ ├── IO
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Url
│ │ │ ├── TYPES
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Arg
│ │ ├── .dune-keep
│ │ ├── Ty
│ │ │ ├── index.html
│ │ │ └── module-type-Ty
│ │ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Doc
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Err
│ │ ├── .dune-keep
│ │ ├── IntMap
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Error_codes
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Meth
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Mime
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Param
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Path
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Req
│ │ ├── .dune-keep
│ │ ├── StringMap
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Security
│ │ ├── .dune-keep
│ │ ├── StringSet
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Service
│ │ ├── .dune-keep
│ │ ├── IO
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Url
│ │ ├── .dune-keep
│ │ ├── TYPES
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCoXhr
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCoXhr_lwt
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCohttp
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCohttp_base
│ │ ├── .dune-keep
│ │ ├── Make
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCohttp_lwt
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCookieServer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzCurl
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCurl_common
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzCurl_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzDebug
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzEncoding
│ │ ├── .dune-keep
│ │ ├── Ezjsonm
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzEncodingJS
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzFetch
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzFetch_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzLwtSys
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzOpenAPI
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ ├── Makers
│ │ │ └── index.html
│ │ ├── Types
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzRecaptcha
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzReq
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzReq_S
│ │ ├── .dune-keep
│ │ ├── index.html
│ │ ├── module-type-CURRENT
│ │ │ └── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ ├── module-type-LEGACY
│ │ │ └── index.html
│ │ ├── module-type-RAW
│ │ │ └── index.html
│ │ ├── module-type-RAWGEN
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzReq_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzReq_lwt_S
│ │ ├── .dune-keep
│ │ ├── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ ├── module-type-LEGACY
│ │ │ └── index.html
│ │ ├── module-type-RAW
│ │ │ └── index.html
│ │ ├── module-type-RAWGEN
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzRequest
│ │ ├── .dune-keep
│ │ ├── ANY
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Make
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ ├── argument-1-_
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzRequest_lwt
│ │ ├── .dune-keep
│ │ ├── ANY
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Make
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ ├── argument-1-_
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzSendgrid
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSendgrid_encoding
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSendgrid_services
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSendgrid_types
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzServer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSession
│ │ ├── .dune-keep
│ │ ├── Hash
│ │ │ └── index.html
│ │ ├── Make
│ │ │ ├── Encoding
│ │ │ │ └── index.html
│ │ │ ├── Service
│ │ │ │ └── index.html
│ │ │ ├── argument-1-S
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── TYPES
│ │ │ ├── index.html
│ │ │ └── module-type-SessionArg
│ │ │ │ └── index.html
│ │ └── index.html
│ ├── EzSessionClient
│ │ ├── .dune-keep
│ │ ├── Make
│ │ │ ├── argument-1-S
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzSessionServer
│ │ ├── .dune-keep
│ │ ├── Make
│ │ │ ├── argument-1-S
│ │ │ │ ├── SessionArg
│ │ │ │ │ └── index.html
│ │ │ │ ├── SessionStore
│ │ │ │ │ └── index.html
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── SessionStoreInMemory
│ │ │ └── index.html
│ │ ├── UserStoreInMemory
│ │ │ ├── SessionArg
│ │ │ │ └── index.html
│ │ │ ├── SessionStore
│ │ │ │ └── index.html
│ │ │ ├── argument-1-S
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── module-type-Arg
│ │ │ ├── SessionArg
│ │ │ │ └── index.html
│ │ │ ├── SessionStore
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── module-type-SessionStore
│ │ │ └── index.html
│ ├── EzWs
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzWsCommon
│ │ ├── .dune-keep
│ │ ├── Types
│ │ │ └── index.html
│ │ ├── index.html
│ │ └── module-type-S
│ │ │ └── index.html
│ ├── EzXhr
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzXhr_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── Ezjsonm_interface
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Facebook
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ ├── Services
│ │ │ └── index.html
│ │ ├── Types
│ │ │ └── index.html
│ │ └── index.html
│ ├── Google
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ ├── Services
│ │ │ └── index.html
│ │ ├── Types
│ │ │ └── index.html
│ │ └── index.html
│ ├── Js_json
│ │ ├── .dune-keep
│ │ ├── JSON_to_Js
│ │ │ └── index.html
│ │ ├── JSON_to_Js_Converter
│ │ │ └── index.html
│ │ ├── Js_to_JSON
│ │ │ └── index.html
│ │ ├── Js_to_JSON_Converter
│ │ │ └── index.html
│ │ ├── Make_Conv
│ │ │ ├── argument-1-C
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ └── module-type-Converter
│ │ │ └── index.html
│ ├── Ppx
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Ppx_client
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Ppx_common
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Ppx_server
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── WsCohttp
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── WsCommon
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── WsHttpaf
│ │ ├── .dune-keep
│ │ └── index.html
│ └── index.html
├── ez_api
│ ├── EzAPI
│ │ ├── .dune-keep
│ │ ├── Arg
│ │ │ ├── Ty
│ │ │ │ ├── index.html
│ │ │ │ └── module-type-Ty
│ │ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Doc
│ │ │ └── index.html
│ │ ├── Err
│ │ │ ├── IntMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Error_codes
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ ├── Meth
│ │ │ └── index.html
│ │ ├── Mime
│ │ │ └── index.html
│ │ ├── Param
│ │ │ └── index.html
│ │ ├── Path
│ │ │ └── index.html
│ │ ├── Req
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Security
│ │ │ ├── StringSet
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Service
│ │ │ ├── IO
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── TYPES
│ │ │ └── index.html
│ │ ├── Url
│ │ │ ├── TYPES
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIJS
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerCohttp
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerHttpAf
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils
│ │ ├── .dune-keep
│ │ ├── Answer
│ │ │ └── index.html
│ │ ├── Directory
│ │ │ ├── MethMap
│ │ │ │ └── index.html
│ │ │ ├── Step
│ │ │ │ └── index.html
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── File
│ │ │ ├── FileString
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── GMTime
│ │ │ └── index.html
│ │ ├── Ip
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ ├── StringMap
│ │ │ └── index.html
│ │ ├── Timings
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__
│ │ ├── .dune-keep
│ │ ├── Answer
│ │ │ └── index.html
│ │ ├── Directory
│ │ │ ├── MethMap
│ │ │ │ └── index.html
│ │ │ ├── Step
│ │ │ │ └── index.html
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── File
│ │ │ ├── FileString
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── GMTime
│ │ │ └── index.html
│ │ ├── Ip
│ │ │ └── index.html
│ │ ├── Timings
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__Answer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils__Directory
│ │ ├── .dune-keep
│ │ ├── MethMap
│ │ │ └── index.html
│ │ ├── Step
│ │ │ └── index.html
│ │ ├── StringMap
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__File
│ │ ├── .dune-keep
│ │ ├── FileString
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPIServerUtils__GMTime
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils__Ip
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPIServerUtils__Timings
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__
│ │ ├── .dune-keep
│ │ ├── Arg
│ │ │ ├── Ty
│ │ │ │ ├── index.html
│ │ │ │ └── module-type-Ty
│ │ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Doc
│ │ │ └── index.html
│ │ ├── Err
│ │ │ ├── IntMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Error_codes
│ │ │ └── index.html
│ │ ├── Meth
│ │ │ └── index.html
│ │ ├── Mime
│ │ │ └── index.html
│ │ ├── Param
│ │ │ └── index.html
│ │ ├── Path
│ │ │ └── index.html
│ │ ├── Req
│ │ │ ├── StringMap
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Security
│ │ │ ├── StringSet
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Service
│ │ │ ├── IO
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Url
│ │ │ ├── TYPES
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Arg
│ │ ├── .dune-keep
│ │ ├── Ty
│ │ │ ├── index.html
│ │ │ └── module-type-Ty
│ │ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Doc
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Err
│ │ ├── .dune-keep
│ │ ├── IntMap
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Error_codes
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Meth
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Mime
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Param
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Path
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzAPI__Req
│ │ ├── .dune-keep
│ │ ├── StringMap
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Security
│ │ ├── .dune-keep
│ │ ├── StringSet
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Service
│ │ ├── .dune-keep
│ │ ├── IO
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzAPI__Url
│ │ ├── .dune-keep
│ │ ├── TYPES
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCoXhr
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCoXhr_lwt
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCohttp
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCohttp_base
│ │ ├── .dune-keep
│ │ ├── Make
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCohttp_lwt
│ │ ├── .dune-keep
│ │ ├── Base
│ │ │ └── index.html
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCookieServer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzCurl
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzCurl_common
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzCurl_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzDebug
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzEncoding
│ │ ├── .dune-keep
│ │ ├── Ezjsonm
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzEncodingJS
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzFetch
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzFetch_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzHash
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzLoads
│ │ ├── .dune-keep
│ │ ├── SMap
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzLoads_offset
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzLwtSys
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzOpenAPI
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ ├── Makers
│ │ │ └── index.html
│ │ ├── Types
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzRecaptcha
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzReq
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzReq_S
│ │ ├── .dune-keep
│ │ ├── index.html
│ │ ├── module-type-CURRENT
│ │ │ └── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ ├── module-type-LEGACY
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzReq_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzReq_lwt_S
│ │ ├── .dune-keep
│ │ ├── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ ├── module-type-LEGACY
│ │ │ └── index.html
│ │ ├── module-type-RAW
│ │ │ └── index.html
│ │ ├── module-type-RAWGEN
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzRequest
│ │ ├── .dune-keep
│ │ ├── ANY
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Make
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ ├── argument-1-_
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzRequest_lwt
│ │ ├── .dune-keep
│ │ ├── ANY
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── Make
│ │ │ ├── Legacy
│ │ │ │ └── index.html
│ │ │ ├── argument-1-_
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── module-type-Interface
│ │ │ └── index.html
│ │ └── module-type-S
│ │ │ ├── Legacy
│ │ │ └── index.html
│ │ │ └── index.html
│ ├── EzSendgrid
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSendgrid_encoding
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSendgrid_services
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSendgrid_types
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzServer
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzSession
│ │ ├── .dune-keep
│ │ ├── Hash
│ │ │ └── index.html
│ │ ├── Make
│ │ │ ├── Encoding
│ │ │ │ └── index.html
│ │ │ ├── Service
│ │ │ │ └── index.html
│ │ │ ├── argument-1-S
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── TYPES
│ │ │ ├── index.html
│ │ │ └── module-type-SessionArg
│ │ │ │ └── index.html
│ │ └── index.html
│ ├── EzSessionClient
│ │ ├── .dune-keep
│ │ ├── Make
│ │ │ ├── argument-1-S
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzSessionServer
│ │ ├── .dune-keep
│ │ ├── Make
│ │ │ ├── argument-1-S
│ │ │ │ ├── SessionArg
│ │ │ │ │ └── index.html
│ │ │ │ ├── SessionStore
│ │ │ │ │ └── index.html
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── SessionStoreInMemory
│ │ │ └── index.html
│ │ ├── UserStoreInMemory
│ │ │ ├── SessionArg
│ │ │ │ └── index.html
│ │ │ ├── SessionStore
│ │ │ │ └── index.html
│ │ │ ├── argument-1-S
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── module-type-Arg
│ │ │ ├── SessionArg
│ │ │ │ └── index.html
│ │ │ ├── SessionStore
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ └── module-type-SessionStore
│ │ │ └── index.html
│ ├── EzWs
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── EzWsCommon
│ │ ├── .dune-keep
│ │ ├── Types
│ │ │ └── index.html
│ │ ├── index.html
│ │ └── module-type-S
│ │ │ └── index.html
│ ├── EzXhr
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── EzXhr_lwt
│ │ ├── .dune-keep
│ │ ├── Interface
│ │ │ └── index.html
│ │ ├── Legacy
│ │ │ └── index.html
│ │ └── index.html
│ ├── Ezjsonm_interface
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Facebook
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ ├── Services
│ │ │ └── index.html
│ │ ├── Types
│ │ │ └── index.html
│ │ └── index.html
│ ├── Google
│ │ ├── .dune-keep
│ │ ├── Encoding
│ │ │ └── index.html
│ │ ├── Services
│ │ │ └── index.html
│ │ ├── Types
│ │ │ └── index.html
│ │ └── index.html
│ ├── Js_json
│ │ ├── .dune-keep
│ │ ├── JSON_to_Js
│ │ │ └── index.html
│ │ ├── JSON_to_Js_Converter
│ │ │ └── index.html
│ │ ├── Js_to_JSON
│ │ │ └── index.html
│ │ ├── Js_to_JSON_Converter
│ │ │ └── index.html
│ │ ├── Make_Conv
│ │ │ ├── argument-1-C
│ │ │ │ └── index.html
│ │ │ └── index.html
│ │ ├── index.html
│ │ └── module-type-Converter
│ │ │ └── index.html
│ ├── Ppx
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Ppx_client
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Ppx_common
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Ppx_compat
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── Ppx_server
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── WsCohttp
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── WsCommon
│ │ ├── .dune-keep
│ │ └── index.html
│ ├── WsHttpaf
│ │ ├── .dune-keep
│ │ └── index.html
│ └── index.html
├── highlight.pack.js
├── index.html
└── odoc.css
├── dune
├── dune-project
├── ez_api.opam
├── src
├── common
│ ├── arg.ml
│ ├── doc.ml
│ ├── dune
│ ├── err.ml
│ ├── error_codes.ml
│ ├── ezAPI.ml
│ ├── js
│ │ ├── dune
│ │ ├── ezDebug.ml
│ │ └── ezLwtSys.ml
│ ├── meth.ml
│ ├── mime.ml
│ ├── multipart.ml
│ ├── param.ml
│ ├── path.ml
│ ├── req.ml
│ ├── security.ml
│ ├── service.ml
│ ├── unix
│ │ ├── dune
│ │ ├── ezDebug.ml
│ │ └── ezLwtSys.ml
│ ├── url.ml
│ └── virtual
│ │ ├── dune
│ │ ├── ezDebug.mli
│ │ └── ezLwtSys.mli
├── encoding
│ ├── dune
│ ├── ezEncoding.ml
│ ├── ezEncoding.mli
│ ├── js
│ │ ├── dune
│ │ ├── ezjsonm_interface.ml
│ │ └── js_json.ml
│ ├── unix
│ │ ├── dune
│ │ └── ezjsonm_interface.ml
│ └── virtual
│ │ ├── dune
│ │ └── ezjsonm_interface.mli
├── ppx
│ ├── README.md
│ ├── dune
│ ├── ppx.ml
│ ├── ppx_client.ml
│ ├── ppx_common.ml
│ ├── ppx_deriving_err_case.ml
│ ├── ppx_req.ml
│ └── ppx_server.ml
├── request
│ ├── dune
│ ├── ezCohttp_base.ml
│ ├── ezRequest.ml
│ ├── ezRequest.mli
│ ├── ezRequest_lwt.ml
│ ├── ezRequest_lwt.mli
│ ├── js
│ │ ├── coxhr
│ │ │ ├── dune
│ │ │ ├── ezCoXhr.ml
│ │ │ ├── ezCoXhr_lwt.ml
│ │ │ ├── ezReq.ml
│ │ │ └── ezReq_lwt.ml
│ │ ├── fetch
│ │ │ ├── dune
│ │ │ ├── ezFetch.ml
│ │ │ ├── ezFetch_lwt.ml
│ │ │ ├── ezReq.ml
│ │ │ └── ezReq_lwt.ml
│ │ ├── nodejs
│ │ │ ├── dune
│ │ │ ├── ezNodeJS.ml
│ │ │ ├── ezNodeJS_lwt.ml
│ │ │ ├── ezReq.ml
│ │ │ ├── ezReq_lwt.ml
│ │ │ └── nodejs_common.ml
│ │ └── xhr
│ │ │ ├── dune
│ │ │ ├── ezReq.ml
│ │ │ ├── ezReq_lwt.ml
│ │ │ ├── ezXhr.ml
│ │ │ └── ezXhr_lwt.ml
│ ├── unix
│ │ ├── cohttp
│ │ │ ├── dune
│ │ │ ├── ezCohttp.ml
│ │ │ ├── ezCohttp_lwt.ml
│ │ │ ├── ezReq.ml
│ │ │ └── ezReq_lwt.ml
│ │ ├── curl
│ │ │ ├── dune
│ │ │ ├── ezCurl.ml
│ │ │ ├── ezCurl_common.ml
│ │ │ ├── ezCurl_lwt.ml
│ │ │ ├── ezReq.ml
│ │ │ └── ezReq_lwt.ml
│ │ ├── default
│ │ │ ├── dune
│ │ │ ├── ezReq.curl.ml
│ │ │ ├── ezReq.dummy.ml
│ │ │ ├── ezReq_lwt.cohttp.ml
│ │ │ ├── ezReq_lwt.curl.ml
│ │ │ ├── ezReq_lwt.dummy.ml
│ │ │ └── ezReq_lwt.httpun.ml
│ │ └── httpun
│ │ │ ├── dune
│ │ │ ├── ezHttpun_lwt.ml
│ │ │ ├── ezReq_lwt.ml
│ │ │ ├── httpun_client.ml
│ │ │ ├── httpun_tls.both.ml
│ │ │ ├── httpun_tls.none.ml
│ │ │ ├── httpun_tls.ssl.ml
│ │ │ └── httpun_tls.tls.ml
│ ├── verbose.ml
│ └── virtual
│ │ ├── cb
│ │ ├── dune
│ │ └── ezReq.mli
│ │ ├── lwt
│ │ ├── dune
│ │ └── ezReq_lwt.mli
│ │ └── s
│ │ ├── dune
│ │ ├── ezReq_S.mli
│ │ └── ezReq_lwt_S.mli
├── server
│ ├── answer.ml
│ ├── cohttp
│ │ ├── dune
│ │ ├── ezAPIServerCohttp.ml
│ │ └── ezServer.ml
│ ├── default
│ │ ├── dune
│ │ ├── ezServer.cohttp.ml
│ │ ├── ezServer.dummy.ml
│ │ ├── ezServer.httpaf.ml
│ │ └── ezServer.httpun.ml
│ ├── directory.ml
│ ├── dune
│ ├── ezAPIServer.ml
│ ├── ezAPIServerUtils.ml
│ ├── ezOpenAPI.ml
│ ├── file.ml
│ ├── gMTime.ml
│ ├── httpaf
│ │ ├── dune
│ │ ├── ezAPIServerHttpAf.ml
│ │ └── ezServer.ml
│ ├── httpun
│ │ ├── dune
│ │ ├── ezAPIServerHttpun.ml
│ │ └── ezServer.ml
│ ├── ip.dummy.ml
│ ├── ip.geoip.ml
│ ├── rlimit_no_file.c
│ ├── server_common.ml
│ ├── timings.ml
│ ├── virtual
│ │ ├── dune
│ │ └── ezServer.mli
│ ├── websocket
│ │ ├── cohttp
│ │ │ ├── dune
│ │ │ ├── wsCohttp.dummy.ml
│ │ │ ├── wsCohttp.real.ml
│ │ │ └── wsCommon.ml
│ │ ├── httpaf
│ │ │ ├── dune
│ │ │ └── wsHttpaf.dummy.ml
│ │ └── httpun
│ │ │ ├── dune
│ │ │ ├── wsHttpun.dummy.ml
│ │ │ └── wsHttpun.real.ml
│ └── yaml
│ │ ├── dune
│ │ ├── ezYaml.dummy.ml
│ │ └── ezYaml.yaml.ml
├── session
│ ├── auth_apis
│ │ ├── dune
│ │ ├── facebook.ml
│ │ └── google.ml
│ ├── blake2s
│ │ ├── dune
│ │ └── ezHash.ml
│ ├── dune
│ ├── ezCookieServer.cohttp.ml
│ ├── ezCookieServer.dummy.ml
│ ├── ezCookieServer.mli
│ ├── ezHash.ml
│ ├── ezSession.ml
│ ├── ezSessionClient.ml
│ ├── ezSessionClient.mli
│ ├── ezSessionServer.ml
│ ├── ezSessionServer.mli
│ ├── md5
│ │ ├── dune
│ │ └── ezHash.ml
│ ├── sha2
│ │ ├── dune
│ │ └── ezHash.ml
│ ├── sha3
│ │ ├── dune
│ │ └── ezHash.ml
│ └── virtual
│ │ ├── dune
│ │ └── ezHash.mli
├── tools
│ ├── loads
│ │ ├── dune
│ │ ├── ezLoads.ml
│ │ └── ezLoads_offset.ml
│ ├── recaptcha
│ │ ├── dune
│ │ └── ezRecaptcha.ml
│ └── sendgrid
│ │ ├── dune
│ │ ├── ezSendgrid.ml
│ │ ├── ezSendgrid_encoding.ml
│ │ ├── ezSendgrid_services.ml
│ │ └── ezSendgrid_types.ml
└── websocket
│ ├── dune
│ ├── ezWsCommon.ml
│ ├── js
│ ├── dune
│ └── ezWs.ml
│ ├── unix
│ ├── cohttp
│ │ ├── dune
│ │ └── ezWs.ml
│ ├── default
│ │ ├── dune
│ │ ├── ezWs.cohttp.ml
│ │ ├── ezWs.dummy.ml
│ │ └── ezWs.httpun.ml
│ └── httpun
│ │ ├── dune
│ │ └── ezWs.ml
│ └── virtual
│ ├── dune
│ └── ezWs.mli
└── test
├── dune
├── loads
├── dune
├── test_loads.ml
├── test_loads_lib.ml
└── test_loads_server.ml
├── main_cohttp.ml
├── main_curl.ml
├── ppx
├── dune
├── test_ppx_client.ml
├── test_ppx_err_case.ml
├── test_ppx_lib.ml
└── test_ppx_server.ml
├── session
├── Makefile
├── dune
├── index.html
├── test_cookie_client.dummy.ml
├── test_cookie_client.real.ml
├── test_cookie_server.ml
└── test_session_lib.ml
├── test.ml
├── test_ws.html
├── test_ws.js
├── test_ws.ml
└── websocket
├── dune
├── test_ws_client.ml
├── test_ws_lib.ml
└── test_ws_server.ml
/.github/workflows/workflow.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | pull_request:
5 | branches:
6 | - master
7 | push:
8 | branches:
9 | - master
10 | - next
11 |
12 | jobs:
13 | build:
14 | strategy:
15 | fail-fast: false
16 | matrix:
17 | os:
18 | - ubuntu-latest
19 | # - macos-latest
20 | ocaml-compiler:
21 | - 4
22 |
23 | runs-on: ${{ matrix.os }}
24 |
25 | steps:
26 | - name: Checkout code
27 | uses: actions/checkout@v4
28 |
29 | - name: Use OCaml ${{ matrix.ocaml-compiler }}
30 | uses: ocaml/setup-ocaml@v3
31 | with:
32 | ocaml-compiler: ${{ matrix.ocaml-compiler }}
33 |
34 | - name: Install system packages required by opam packages
35 | run: opam depext --update geoip ocurl tls
36 |
37 | - name: Install opam packages
38 | run: |
39 | opam install $(opam show -f depopts: . | sed -e 's/{.*}//g' -e 's/"//g')
40 | opam install . --deps-only --with-doc --with-test
41 |
42 | - name: Run build
43 | run: opam exec -- make build
44 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | _opam
2 | _build
3 | _local
4 | *~
5 | *.merlin
6 | *.install
7 | *.exe
8 | .ocamlformat
9 | test/session/*.js
--------------------------------------------------------------------------------
/CHANGES.md:
--------------------------------------------------------------------------------
1 | ## [2.1.0](https://github.com/ocamlpro/ez_api/compare/v2.0.0...2.1.0) (2024-07-08)
2 |
3 | * revamp registration of services (register/hide)
4 | * fixes:
5 | * allow different methods with same path
6 | * 404 instead of 405 if the path has no services
7 | * improvements:
8 | * extension syntax instead of attributes for ppx
9 | * allow multipart in curl common
10 | * use http code defined in error cases in the server
11 | * remove deprecated curl_multi
12 |
13 | ## [2.0.0](https://github.com/ocamlpro/ez_api/compare/1.2.0...v2.0.0) (2023-02-06)
14 |
15 | * fixes:
16 | * capital method names
17 | * curl callback
18 | * improvements:
19 | * export session services
20 | * cookie support
21 |
22 | ## [1.2.0](https://github.com/ocamlpro/ez_api/compare/1.1.0...1.2.0) (2022-06-27)
23 |
24 | * release dependencies constraints
25 | * better result errors
26 |
27 | ## [1.1.0](https://github.com/ocamlpro/ez_api/compare/v1.0.0...1.1.0) (2022-04-11)
28 |
29 | * allow collision of static and dynamic path in server
30 | * update js_of_ocaml, cohttp, ppx_deriving_encoding deps
31 |
32 | ## [1.0.0](https://github.com/ocamlpro/ez_api/compare/0.1.0...v1.0.0) (2021-12-01)
33 |
34 | * better optional dependencies
35 | * various fixes
36 |
37 | ## 0.1.0 (2021-31-03)
38 |
39 | First release
40 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | .PHONY: all build dev install clean doc deps opt-deps remove-opt-deps
2 |
3 | all: build
4 |
5 | build:
6 | @dune build src
7 |
8 | dev:
9 | @dune build
10 |
11 | install:
12 | @dune install
13 |
14 | clean:
15 | @dune clean
16 |
17 | doc:
18 | @dune build @doc
19 | @rsync -ru _build/default/_doc/_html/* docs/
20 |
21 | deps:
22 | @opam install --deps-only .
23 |
24 | opt-deps: deps
25 | @opam pin -n add websocket-httpaf.~dev https://github.com/anmonteiro/websocket-httpaf.git
26 | @opam pin -n add websocket-httpaf-lwt.~dev https://github.com/anmonteiro/websocket-httpaf.git
27 | @opam install $(shell opam show -f depopts . | sed -e 's/{.*}//g' -e 's/"//g')
28 |
29 | remove-opt-deps:
30 | @opam remove $(opam show -f depopts: . | sed -e 's/{.*}//g' -e 's/"//g')
31 |
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-cayman
2 |
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI/Error_codes/index.html:
--------------------------------------------------------------------------------
1 |
2 |
Error_codes (ez-api.EzAPI.Error_codes)val codes : string $t
val error : $key -> string option
val code : string -> $key option
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIJS/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIJS/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIJS/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPIJS (ez-api.EzAPIJS)
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerCohttp/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerCohttp/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerCohttp__/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerCohttp__/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerCohttp__/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPIServerCohttp__ (ez-api.EzAPIServerCohttp__)Module EzAPIServerCohttp__
module Ws : sig ... end
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerCohttp__Ws/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerCohttp__Ws/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerHttpAf/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerHttpAf/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils/Directory/Step/index.html:
--------------------------------------------------------------------------------
1 |
2 | Step (ez-api.EzAPIServerUtils.Directory.Step)
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils/Ip/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ip (ez-api.EzAPIServerUtils.Ip)val req_ips : (string, EzAPI.TYPES.ip_info) Stdlib.Hashtbl.t
val register : float -> string -> unit
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils__/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__/Directory/Step/index.html:
--------------------------------------------------------------------------------
1 |
2 | Step (ez-api.EzAPIServerUtils__.Directory.Step)
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__/Ip/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ip (ez-api.EzAPIServerUtils__.Ip)val req_ips : (string, EzAPI.TYPES.ip_info) Stdlib.Hashtbl.t
val register : float -> string -> unit
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__Answer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils__Answer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__Directory/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils__Directory/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__Directory/Step/index.html:
--------------------------------------------------------------------------------
1 |
2 | Step (ez-api.EzAPIServerUtils__Directory.Step)
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__File/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils__File/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__GMTime/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils__GMTime/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__Ip/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils__Ip/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__Ip/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPIServerUtils__Ip (ez-api.EzAPIServerUtils__Ip)Module EzAPIServerUtils__Ip
val req_ips : (string, EzAPI.TYPES.ip_info) Stdlib.Hashtbl.t
val register : float -> string -> unit
--------------------------------------------------------------------------------
/docs/ez-api/EzAPIServerUtils__Timings/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPIServerUtils__Timings/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI_/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI_/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI_/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPI_ (ez-api.EzAPI_)
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__/Error_codes/index.html:
--------------------------------------------------------------------------------
1 |
2 | Error_codes (ez-api.EzAPI__.Error_codes)val codes : string $t
val error : $key -> string option
val code : string -> $key option
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Arg/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Arg/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Doc/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Doc/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Err/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Err/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Error_codes/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Error_codes/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Error_codes/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPI__Error_codes (ez-api.EzAPI__Error_codes)Module EzAPI__Error_codes
val codes : string $t
val error : $key -> string option
val code : string -> $key option
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Meth/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Meth/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Mime/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Mime/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Param/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Param/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Path/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Path/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Req/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Req/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Security/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Security/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Service/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Service/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzAPI__Url/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzAPI__Url/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCoXhr/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCoXhr/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCoXhr_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCoXhr_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCohttp/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCohttp/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCohttp_base/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCohttp_base/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCohttp_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCohttp_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCookieServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCookieServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCurl/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCurl/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCurl_common/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCurl_common/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzCurl_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzCurl_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzDebug/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzDebug/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzDebug/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzDebug (ez-api.EzDebug)val printf : ('a, unit, string, unit) Stdlib.format4 -> 'a
val log : string -> unit
--------------------------------------------------------------------------------
/docs/ez-api/EzEncoding/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzEncoding/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzEncoding/Ezjsonm/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ezjsonm (ez-api.EzEncoding.Ezjsonm)val from_string : string -> Json_repr.ezjsonm
val to_string : ?minify:bool -> Json_repr.ezjsonm -> string
--------------------------------------------------------------------------------
/docs/ez-api/EzEncodingJS/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzEncodingJS/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzEncodingJS/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzEncodingJS (ez-api.EzEncodingJS)Module EzEncodingJS
--------------------------------------------------------------------------------
/docs/ez-api/EzFetch/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzFetch/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzFetch_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzFetch_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzLwtSys/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzLwtSys/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzLwtSys/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzLwtSys (ez-api.EzLwtSys)val run : (unit -> unit Lwt.t) -> unit
val sleep : float -> unit Lwt.t
--------------------------------------------------------------------------------
/docs/ez-api/EzOpenAPI/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzOpenAPI/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzRecaptcha/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzRecaptcha/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzRecaptcha/Encoding/index.html:
--------------------------------------------------------------------------------
1 |
2 | Encoding (ez-api.EzRecaptcha.Encoding)val tsp : CalendarLib.Printer.Calendar.t Json_encoding.encoding
val captcha : recaptcha Json_encoding.encoding
--------------------------------------------------------------------------------
/docs/ez-api/EzReq/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzReq/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzReq_S/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzReq_S/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzReq_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzReq_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzReq_lwt_S/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzReq_lwt_S/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzRequest/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzRequest/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzRequest_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzRequest_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzSendgrid/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzSendgrid/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzSendgrid_encoding/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzSendgrid_encoding/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzSendgrid_services/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzSendgrid_services/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzSendgrid_types/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzSendgrid_types/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzServer/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzServer (ez-api.EzServer)val server : ?catch:(string -> exn -> string EzAPIServerUtils.Answer.t Lwt.t) -> (int * EzAPIServerUtils.server_kind) list -> unit Lwt.t
val set_debug : unit -> unit
--------------------------------------------------------------------------------
/docs/ez-api/EzSession/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzSession/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzSessionClient/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzSessionClient/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzSessionClient/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzSessionClient (ez-api.EzSessionClient)Module EzSessionClient
--------------------------------------------------------------------------------
/docs/ez-api/EzSessionServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzSessionServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzWs/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzWs/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzWsCommon/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzWsCommon/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzXhr/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzXhr/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/EzXhr_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/EzXhr_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Ezjsonm_interface/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Ezjsonm_interface/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Ezjsonm_interface/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ezjsonm_interface (ez-api.Ezjsonm_interface)Module Ezjsonm_interface
val from_string : string -> Json_repr.ezjsonm
val to_string : ?minify:bool -> Json_repr.ezjsonm -> string
--------------------------------------------------------------------------------
/docs/ez-api/Facebook/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Facebook/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Facebook/Encoding/index.html:
--------------------------------------------------------------------------------
1 |
2 | Encoding (ez-api.Facebook.Encoding)val picture_encoding : string Json_encoding.encoding
val encoding : Types.info Json_encoding.encoding
val profile : Types.profile Json_encoding.encoding
--------------------------------------------------------------------------------
/docs/ez-api/Google/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Google/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Js_json/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Js_json/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Js_json/JSON_to_Js/index.html:
--------------------------------------------------------------------------------
1 |
2 | JSON_to_Js (ez-api.Js_json.JSON_to_Js)
--------------------------------------------------------------------------------
/docs/ez-api/Js_json/Js_to_JSON/index.html:
--------------------------------------------------------------------------------
1 |
2 | Js_to_JSON (ez-api.Js_json.Js_to_JSON)
--------------------------------------------------------------------------------
/docs/ez-api/Js_json/Make_Conv/index.html:
--------------------------------------------------------------------------------
1 |
2 | Make_Conv (ez-api.Js_json.Make_Conv)Parameters
Signature
val convert : ('a C._from, C._to) zip list -> C._to
--------------------------------------------------------------------------------
/docs/ez-api/Ppx/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Ppx/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Ppx/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ppx (ez-api.Ppx)
--------------------------------------------------------------------------------
/docs/ez-api/Ppx_client/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Ppx_client/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Ppx_client/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ppx_client (ez-api.Ppx_client)Module Ppx_client
--------------------------------------------------------------------------------
/docs/ez-api/Ppx_common/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Ppx_common/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Ppx_server/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/Ppx_server/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/Ppx_server/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ppx_server (ez-api.Ppx_server)Module Ppx_server
--------------------------------------------------------------------------------
/docs/ez-api/WsCohttp/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/WsCohttp/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/WsCommon/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/WsCommon/.dune-keep
--------------------------------------------------------------------------------
/docs/ez-api/WsHttpaf/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez-api/WsHttpaf/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI/Error_codes/index.html:
--------------------------------------------------------------------------------
1 |
2 | Error_codes (ez_api.EzAPI.Error_codes)val codes : string $t
val error : $key -> string option
val code : string -> $key option
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIJS/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIJS/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIJS/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPIJS (ez_api.EzAPIJS)
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerCohttp/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerCohttp/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerHttpAf/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerHttpAf/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils/Directory/Step/index.html:
--------------------------------------------------------------------------------
1 |
2 | Step (ez_api.EzAPIServerUtils.Directory.Step)
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils/Ip/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ip (ez_api.EzAPIServerUtils.Ip)val req_ips : (string, EzAPI.TYPES.ip_info) Stdlib.Hashtbl.t
val register : float -> string -> unit
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils__/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__/Directory/Step/index.html:
--------------------------------------------------------------------------------
1 |
2 | Step (ez_api.EzAPIServerUtils__.Directory.Step)
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__/Ip/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ip (ez_api.EzAPIServerUtils__.Ip)val req_ips : (string, EzAPI.TYPES.ip_info) Stdlib.Hashtbl.t
val register : float -> string -> unit
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__Answer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils__Answer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__Directory/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils__Directory/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__Directory/Step/index.html:
--------------------------------------------------------------------------------
1 |
2 | Step (ez_api.EzAPIServerUtils__Directory.Step)
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__File/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils__File/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__GMTime/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils__GMTime/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__Ip/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils__Ip/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__Ip/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPIServerUtils__Ip (ez_api.EzAPIServerUtils__Ip)Module EzAPIServerUtils__Ip
val req_ips : (string, EzAPI.TYPES.ip_info) Stdlib.Hashtbl.t
val register : float -> string -> unit
--------------------------------------------------------------------------------
/docs/ez_api/EzAPIServerUtils__Timings/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPIServerUtils__Timings/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__/Error_codes/index.html:
--------------------------------------------------------------------------------
1 |
2 | Error_codes (ez_api.EzAPI__.Error_codes)val codes : string $t
val error : $key -> string option
val code : string -> $key option
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Arg/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Arg/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Doc/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Doc/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Err/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Err/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Error_codes/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Error_codes/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Error_codes/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzAPI__Error_codes (ez_api.EzAPI__Error_codes)Module EzAPI__Error_codes
val codes : string $t
val error : $key -> string option
val code : string -> $key option
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Meth/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Meth/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Mime/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Mime/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Param/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Param/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Path/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Path/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Req/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Req/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Security/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Security/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Service/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Service/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzAPI__Url/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzAPI__Url/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCoXhr/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCoXhr/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCoXhr_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCoXhr_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCohttp/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCohttp/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCohttp_base/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCohttp_base/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCohttp_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCohttp_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCookieServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCookieServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCurl/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCurl/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCurl_common/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCurl_common/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzCurl_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzCurl_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzDebug/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzDebug/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzDebug/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzDebug (ez_api.EzDebug)val printf : ('a, unit, string, unit) Stdlib.format4 -> 'a
val log : string -> unit
--------------------------------------------------------------------------------
/docs/ez_api/EzEncoding/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzEncoding/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzEncoding/Ezjsonm/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ezjsonm (ez_api.EzEncoding.Ezjsonm)val from_string : string -> Json_repr.ezjsonm
val to_string : ?minify:bool -> Json_repr.ezjsonm -> string
--------------------------------------------------------------------------------
/docs/ez_api/EzEncodingJS/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzEncodingJS/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzEncodingJS/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzEncodingJS (ez_api.EzEncodingJS)Module EzEncodingJS
--------------------------------------------------------------------------------
/docs/ez_api/EzFetch/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzFetch/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzFetch_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzFetch_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzHash/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzHash/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzHash/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzHash (ez_api.EzHash)val hash : string -> string
--------------------------------------------------------------------------------
/docs/ez_api/EzLoads/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzLoads/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzLoads_offset/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzLoads_offset/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzLwtSys/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzLwtSys/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzLwtSys/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzLwtSys (ez_api.EzLwtSys)val run : (unit -> unit Lwt.t) -> unit
val sleep : float -> unit Lwt.t
--------------------------------------------------------------------------------
/docs/ez_api/EzOpenAPI/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzOpenAPI/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzRecaptcha/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzRecaptcha/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzRecaptcha/Encoding/index.html:
--------------------------------------------------------------------------------
1 |
2 | Encoding (ez_api.EzRecaptcha.Encoding)val tsp : CalendarLib.Printer.Calendar.t Json_encoding.encoding
val captcha : recaptcha Json_encoding.encoding
--------------------------------------------------------------------------------
/docs/ez_api/EzReq/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzReq/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzReq_S/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzReq_S/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzReq_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzReq_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzReq_lwt_S/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzReq_lwt_S/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzRequest/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzRequest/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzRequest_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzRequest_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzSendgrid/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzSendgrid/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzSendgrid_encoding/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzSendgrid_encoding/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzSendgrid_services/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzSendgrid_services/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzSendgrid_types/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzSendgrid_types/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzServer/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzServer (ez_api.EzServer)val server : ?catch:(string -> exn -> string EzAPIServerUtils.Answer.t Lwt.t) -> (int * EzAPIServerUtils.server_kind) list -> unit Lwt.t
val set_debug : unit -> unit
--------------------------------------------------------------------------------
/docs/ez_api/EzSession/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzSession/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzSessionClient/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzSessionClient/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzSessionClient/index.html:
--------------------------------------------------------------------------------
1 |
2 | EzSessionClient (ez_api.EzSessionClient)Module EzSessionClient
--------------------------------------------------------------------------------
/docs/ez_api/EzSessionServer/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzSessionServer/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzWs/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzWs/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzWsCommon/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzWsCommon/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzXhr/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzXhr/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/EzXhr_lwt/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/EzXhr_lwt/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Ezjsonm_interface/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Ezjsonm_interface/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Ezjsonm_interface/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ezjsonm_interface (ez_api.Ezjsonm_interface)Module Ezjsonm_interface
val from_string : string -> Json_repr.ezjsonm
val to_string : ?minify:bool -> Json_repr.ezjsonm -> string
--------------------------------------------------------------------------------
/docs/ez_api/Facebook/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Facebook/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Facebook/Encoding/index.html:
--------------------------------------------------------------------------------
1 |
2 | Encoding (ez_api.Facebook.Encoding)val picture_encoding : string Json_encoding.encoding
val encoding : Types.info Json_encoding.encoding
val profile : Types.profile Json_encoding.encoding
--------------------------------------------------------------------------------
/docs/ez_api/Google/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Google/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Js_json/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Js_json/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Js_json/JSON_to_Js/index.html:
--------------------------------------------------------------------------------
1 |
2 | JSON_to_Js (ez_api.Js_json.JSON_to_Js)
--------------------------------------------------------------------------------
/docs/ez_api/Js_json/Js_to_JSON/index.html:
--------------------------------------------------------------------------------
1 |
2 | Js_to_JSON (ez_api.Js_json.Js_to_JSON)
--------------------------------------------------------------------------------
/docs/ez_api/Js_json/Make_Conv/index.html:
--------------------------------------------------------------------------------
1 |
2 | Make_Conv (ez_api.Js_json.Make_Conv)Parameters
Signature
val convert : ('a C._from, C._to) zip list -> C._to
--------------------------------------------------------------------------------
/docs/ez_api/Ppx/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Ppx/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Ppx/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ppx (ez_api.Ppx)
--------------------------------------------------------------------------------
/docs/ez_api/Ppx_client/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Ppx_client/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Ppx_client/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ppx_client (ez_api.Ppx_client)Module Ppx_client
--------------------------------------------------------------------------------
/docs/ez_api/Ppx_common/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Ppx_common/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Ppx_compat/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Ppx_compat/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Ppx_compat/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ppx_compat (ez_api.Ppx_compat)Module Ppx_compat
val string_literal : Ppxlib.constant -> string option
--------------------------------------------------------------------------------
/docs/ez_api/Ppx_server/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/Ppx_server/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/Ppx_server/index.html:
--------------------------------------------------------------------------------
1 |
2 | Ppx_server (ez_api.Ppx_server)Module Ppx_server
--------------------------------------------------------------------------------
/docs/ez_api/WsCohttp/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/WsCohttp/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/WsCommon/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/WsCommon/.dune-keep
--------------------------------------------------------------------------------
/docs/ez_api/WsHttpaf/.dune-keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OCamlPro/ez_api/dc156904113f323016ad8cce8e7ea5bdbe4d0bad/docs/ez_api/WsHttpaf/.dune-keep
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | index
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
OCaml package documentation
13 |
14 | - ez_api
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/dune:
--------------------------------------------------------------------------------
1 | (dirs :standard)
2 | (env
3 | (_
4 | (flags (:standard -w +a-4-41-42-44-45-48-70 -warn-error -a))))
5 |
--------------------------------------------------------------------------------
/dune-project:
--------------------------------------------------------------------------------
1 | (lang dune 2.8)
2 | (generate_opam_files true)
3 | (name ez_api)
4 | (version 2.0.0)
5 | (source (github ocamlpro/ez_api))
6 | (license LGPL-2.1-only)
7 | (authors
8 | "Cagdas Bozman "
9 | "Michael Laporte "
10 | "Fabrice Le Fessant "
11 | "Maxime Levillain "
12 | "Alain Mebsout ")
13 | (maintainers "Fabrice Le Fessant ")
14 |
15 | (package
16 | (name ez_api)
17 | (synopsis "Easy API library and tools")
18 | (documentation "https://ocpmax.github.io/ez_api/ez_api/index.html")
19 | (depends
20 | (ocaml (>= 4.08))
21 | (json-data-encoding (>= 1.0.1))
22 | (lwt (>= 4.0.0))
23 | (ezjsonm (>= 1.1.0))
24 | uuidm)
25 | (depopts
26 | geoip
27 | js_of_ocaml-lwt
28 | calendar
29 | cohttp-lwt-unix
30 | cohttp-lwt-jsoo
31 | httpaf-lwt-unix
32 | ocurl
33 | ezjs_fetch
34 | websocket-lwt-unix
35 | ppx_deriving_encoding
36 | digestif
37 | yaml
38 | httpun-lwt-unix
39 | httpun-ws-lwt-unix
40 | )
41 | (conflicts
42 | (js_of_ocaml-lwt (< 6.0.0))
43 | (cohttp-lwt-unix (< 5.0.0))
44 | (cohttp-lwt-jsoo (< 5.0.0))
45 | (calendar (< 2.03.0))
46 | (httpaf-lwt-unix (< 0.6.0))
47 | (ezjs_fetch (< 0.2))
48 | (ocurl (< 0.8.0))
49 | (digestif (< 1.0.0))
50 | (ppx_deriving_encoding (< 0.4.0))
51 | ))
52 |
--------------------------------------------------------------------------------
/src/common/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezAPI)
3 | (public_name ez_api)
4 | (modules arg param req path mime meth err security service doc url error_codes multipart ezAPI)
5 | (libraries lwt ezEncoding ezDebug ezLwtSys uuidm))
6 |
7 | (library
8 | (name ezAPIJS)
9 | (public_name ez_api.js)
10 | (optional)
11 | (modules)
12 | (libraries ezAPI ezjsonm_js ezDebug_js ezLwtSys_js))
13 |
--------------------------------------------------------------------------------
/src/common/js/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezDebug_js)
3 | (public_name ez_api.debug_js)
4 | (optional)
5 | (modules ezDebug)
6 | (preprocess (pps js_of_ocaml-ppx))
7 | (implements ezDebug))
8 |
9 | (library
10 | (name ezLwtSys_js)
11 | (public_name ez_api.lwt_js)
12 | (optional)
13 | (modules ezLwtSys)
14 | (implements ezLwtSys)
15 | (libraries js_of_ocaml))
16 |
--------------------------------------------------------------------------------
/src/common/js/ezDebug.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | open Js_of_ocaml
12 |
13 | let printf fmt = Printf.kprintf (fun s -> Console.console##debug (Js.string s)) fmt
14 | let log s = Console.console##log (Js.string s)
15 |
--------------------------------------------------------------------------------
/src/common/js/ezLwtSys.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let run = Lwt.async
12 | let sleep d =
13 | let t, w = Lwt.task () in
14 | let id = Js_of_ocaml.Dom_html.setTimeout (Lwt.wakeup w) (d *. 1000.) in
15 | Lwt.on_cancel t (fun () -> Js_of_ocaml.Dom_html.clearTimeout id);
16 | t
17 |
--------------------------------------------------------------------------------
/src/common/unix/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezDebug_unix)
3 | (public_name ez_api.debug_unix)
4 | (modules ezDebug)
5 | (implements ezDebug))
6 |
7 | (library
8 | (name ezLwtSys_unix)
9 | (public_name ez_api.lwt_unix)
10 | (optional)
11 | (modules ezLwtSys)
12 | (implements ezLwtSys)
13 | (libraries lwt.unix))
14 |
--------------------------------------------------------------------------------
/src/common/unix/ezDebug.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let printf fmt = Printf.kprintf (fun s -> Format.eprintf "%s@." s) fmt
12 | let log = prerr_endline
13 |
--------------------------------------------------------------------------------
/src/common/unix/ezLwtSys.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let run f = Lwt_main.run @@ f ()
12 | let sleep f = Lwt_unix.sleep f
13 |
--------------------------------------------------------------------------------
/src/common/virtual/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezDebug)
3 | (public_name ez_api.debug)
4 | (virtual_modules ezDebug)
5 | (modules ezDebug)
6 | (default_implementation ezDebug_unix))
7 |
8 | (library
9 | (name ezLwtSys)
10 | (public_name ez_api.lwt_sys)
11 | (virtual_modules ezLwtSys)
12 | (modules ezLwtSys)
13 | (default_implementation ezLwtSys_unix)
14 | (libraries lwt))
15 |
--------------------------------------------------------------------------------
/src/common/virtual/ezDebug.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | val printf : ('a, unit, string, unit) format4 -> 'a
12 | val log : string -> unit
13 |
--------------------------------------------------------------------------------
/src/common/virtual/ezLwtSys.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | val run : (unit -> unit Lwt.t) -> unit
12 | val sleep : float -> unit Lwt.t
13 |
--------------------------------------------------------------------------------
/src/encoding/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezEncoding)
3 | (public_name ez_api.encoding)
4 | (modules ezEncoding)
5 | (libraries json-data-encoding ezjsonm_interface hex uutf))
6 |
7 | (library
8 | (name ezEncodingJS)
9 | (public_name ez_api.encoding_js)
10 | (optional)
11 | (modules)
12 | (libraries ezEncoding ezjsonm_js))
13 |
--------------------------------------------------------------------------------
/src/encoding/js/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (public_name ez_api.js_json)
3 | (name js_json)
4 | (optional)
5 | (preprocess (pps js_of_ocaml-ppx))
6 | (modules js_json)
7 | (libraries json-data-encoding js_of_ocaml))
8 |
9 | (library
10 | (public_name ez_api.ezjsonm_js)
11 | (name ezjsonm_js)
12 | (optional)
13 | (implements ezjsonm_interface)
14 | (preprocess (pps js_of_ocaml-ppx))
15 | (modules ezjsonm_interface)
16 | (libraries js_json))
17 |
--------------------------------------------------------------------------------
/src/encoding/unix/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (public_name ez_api.ezjsonm_unix)
3 | (name ezjsonm_unix)
4 | (implements ezjsonm_interface)
5 | (modules ezjsonm_interface)
6 | (libraries ezjsonm))
7 |
--------------------------------------------------------------------------------
/src/encoding/unix/ezjsonm_interface.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let from_string = Ezjsonm.value_from_string
12 | let to_string = Ezjsonm.value_to_string
13 |
--------------------------------------------------------------------------------
/src/encoding/virtual/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (public_name ez_api.ezjsonm)
3 | (name ezjsonm_interface)
4 | (virtual_modules ezjsonm_interface)
5 | (libraries json-data-encoding)
6 | (default_implementation ezjsonm_unix))
7 |
--------------------------------------------------------------------------------
/src/encoding/virtual/ezjsonm_interface.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | val from_string : string -> Json_repr.ezjsonm
12 | val to_string : ?minify:bool -> Json_repr.ezjsonm -> string
13 |
--------------------------------------------------------------------------------
/src/ppx/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ppx_common)
3 | (public_name ez_api.ppx_common)
4 | (optional)
5 | (modules ppx_common)
6 | (preprocess (pps ppxlib.metaquot))
7 | (libraries ppx_deriving_encoding.lib))
8 |
9 | (library
10 | (name ppx_client)
11 | (public_name ez_api.ppx_client)
12 | (optional)
13 | (modules ppx_client)
14 | (kind ppx_rewriter)
15 | (libraries ppx_common)
16 | (ppx_runtime_libraries ezAPI))
17 |
18 | (library
19 | (name ppx)
20 | (public_name ez_api.ppx)
21 | (optional)
22 | (modules ppx)
23 | (kind ppx_rewriter)
24 | (libraries ppx_common)
25 | (ppx_runtime_libraries ezAPIServerUtils))
26 |
27 | (library
28 | (name ppx_server)
29 | (public_name ez_api.ppx_server)
30 | (optional)
31 | (modules ppx_server)
32 | (kind ppx_rewriter)
33 | (libraries ppx_common)
34 | (ppx_runtime_libraries ezAPIServer))
35 |
36 | (library
37 | (name ppx_req)
38 | (public_name ez_api.ppx_req)
39 | (optional)
40 | (modules ppx_req)
41 | (kind ppx_rewriter)
42 | (libraries ppx_common)
43 | (ppx_runtime_libraries ezReq_lwt))
44 |
45 | (library
46 | (name ppx_deriving_err_case)
47 | (public_name ez_api.ppx_err_case)
48 | (optional)
49 | (modules ppx_deriving_err_case)
50 | (preprocess (pps ppxlib.metaquot))
51 | (kind ppx_rewriter)
52 | (ppx_runtime_libraries ez_api)
53 | (libraries ppx_deriving_encoding.lib ez_api))
54 |
--------------------------------------------------------------------------------
/src/ppx/ppx.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let () =
12 | Ppxlib.Driver.register_transformation "ez_api" ~impl:Ppx_common.impl;
13 | Ppx_common.derivers None;
14 | Ppx_common.global_deriver None
15 |
--------------------------------------------------------------------------------
/src/ppx/ppx_client.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let () =
12 | let kind = Some `client in
13 | Ppxlib.Driver.register_transformation "ez_api_client" ~impl:(Ppx_common.impl ?kind);
14 | Ppx_common.derivers kind;
15 | Ppx_common.global_deriver kind
16 |
--------------------------------------------------------------------------------
/src/ppx/ppx_req.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let () =
12 | let kind = Some `request in
13 | Ppxlib.Driver.register_transformation "ez_api_req" ~impl:(Ppx_common.impl ?kind);
14 | Ppx_common.derivers kind;
15 | Ppx_common.global_deriver kind
16 |
--------------------------------------------------------------------------------
/src/ppx/ppx_server.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let () =
12 | let kind = Some `server in
13 | Ppxlib.Driver.register_transformation "ez_api_server" ~impl:(Ppx_common.impl ?kind);
14 | Ppx_common.derivers kind;
15 | Ppx_common.global_deriver kind
16 |
--------------------------------------------------------------------------------
/src/request/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name verbose)
3 | (public_name ez_api.request_verbose)
4 | (modules verbose))
5 |
6 | (library
7 | (name ezRequest)
8 | (public_name ez_api.request)
9 | (modules ezRequest)
10 | (libraries ezReq_S))
11 |
12 | (library
13 | (name ezRequest_lwt)
14 | (public_name ez_api.request_lwt)
15 | (modules ezRequest_lwt)
16 | (libraries ezReq_lwt_S))
17 |
18 | (library
19 | (name ezCohttp_base)
20 | (public_name ez_api.cohttp_base)
21 | (optional)
22 | (modules ezCohttp_base)
23 | (libraries verbose ezAPI cohttp-lwt))
24 |
--------------------------------------------------------------------------------
/src/request/ezRequest.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | (* If the code is > 0, it is an HTTP reply code. Otherwise, it is an
12 | internal error (-1 connection, -2 decoding) *)
13 |
14 | val request_reply_hook : (unit -> unit) ref
15 |
16 | (* Engine independent implementation. Beware: if you use these calls,
17 | you must initialize an engine independantly.*)
18 |
19 | module type S = EzReq_S.S
20 | module type Interface = EzReq_S.Interface
21 |
22 | module ANY : S
23 |
24 | module Make(_ : Interface) : S
25 |
--------------------------------------------------------------------------------
/src/request/ezRequest_lwt.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | val request_reply_hook : (unit -> unit) ref
12 |
13 | module type S = EzReq_lwt_S.S
14 | module type Interface = EzReq_lwt_S.Interface
15 |
16 | (* Engine independent implementation. Beware: if you use these calls,
17 | you must initialize an engine independantly.*)
18 | module ANY : S
19 |
20 | module Make(_ : Interface) : S
21 |
--------------------------------------------------------------------------------
/src/request/js/coxhr/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezCoXhr)
3 | (public_name ez_api.coxhr)
4 | (optional)
5 | (modules ezCoXhr)
6 | (preprocess (pps js_of_ocaml-ppx))
7 | (libraries ezRequest ezCohttp_base cohttp-lwt-jsoo ezAPIJS)
8 | (modes byte))
9 |
10 | (library
11 | (name ezCoXhr_i)
12 | (public_name ez_api.icoxhr)
13 | (optional)
14 | (modules ezReq)
15 | (implements ezReq)
16 | (libraries ezCoXhr)
17 | (modes byte))
18 |
19 | (library
20 | (name ezCoXhr_lwt)
21 | (public_name ez_api.coxhr_lwt)
22 | (optional)
23 | (modules ezCoXhr_lwt)
24 | (preprocess (pps js_of_ocaml-ppx))
25 | (libraries ezRequest_lwt ezCohttp_base cohttp-lwt-jsoo ezAPIJS)
26 | (modes byte))
27 |
28 | (library
29 | (name ezCoXhr_lwt_i)
30 | (public_name ez_api.icoxhr_lwt)
31 | (optional)
32 | (modules ezReq_lwt)
33 | (implements ezReq_lwt)
34 | (libraries ezCoXhr_lwt)
35 | (modes byte))
36 |
--------------------------------------------------------------------------------
/src/request/js/coxhr/ezCoXhr.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | open Lwt.Infix
12 | open EzRequest
13 |
14 | module Base = EzCohttp_base.Make(Cohttp_lwt_jsoo.Client)
15 |
16 | module Interface = struct
17 | let get ?meth ?headers ?msg url f =
18 | Lwt.async @@ fun () ->
19 | Base.get ?meth ?headers ?msg url >|= f
20 |
21 | let post ?meth ?content_type ?content ?headers ?msg url f =
22 | Lwt.async @@ fun () ->
23 | Base.post ?meth ?content_type ?content ?headers ?msg url >|= f
24 | end
25 |
26 | include Make(Interface)
27 |
28 | let () =
29 | Js_of_ocaml.Js.Unsafe.global##.set_verbose_ := Js_of_ocaml.Js.wrap_callback Verbose.set_verbose;
30 | EzDebug.log "ezCoXhr Loaded"
31 |
--------------------------------------------------------------------------------
/src/request/js/coxhr/ezCoXhr_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | module Base = EzCohttp_base.Make(Cohttp_lwt_jsoo.Client)
12 |
13 | module Interface = struct
14 | let get ?meth ?headers ?msg url =
15 | Base.get ?meth ?headers ?msg url
16 |
17 | let post ?meth ?content_type ?content ?headers ?msg url =
18 | Base.post ?meth ?content_type ?content ?headers ?msg url
19 | end
20 |
21 | include EzRequest_lwt.Make(Interface)
22 |
23 | let () =
24 | Js_of_ocaml.Js.Unsafe.global##.set_verbose_ := Js_of_ocaml.Js.wrap_callback Verbose.set_verbose;
25 | EzDebug.log "ezCoXhr Loaded"
26 |
--------------------------------------------------------------------------------
/src/request/js/coxhr/ezReq.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCoXhr
12 |
--------------------------------------------------------------------------------
/src/request/js/coxhr/ezReq_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCoXhr_lwt
12 |
--------------------------------------------------------------------------------
/src/request/js/fetch/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezFetch)
3 | (public_name ez_api.fetch)
4 | (optional)
5 | (modules ezFetch)
6 | (preprocess (pps js_of_ocaml-ppx))
7 | (libraries verbose ezRequest ezjs_fetch ezAPIJS)
8 | (modes byte))
9 |
10 | (library
11 | (name ezFetch_i)
12 | (public_name ez_api.ifetch)
13 | (optional)
14 | (modules ezReq)
15 | (implements ezReq)
16 | (libraries ezFetch)
17 | (modes byte))
18 |
19 | (library
20 | (name ezFetch_lwt)
21 | (public_name ez_api.fetch_lwt)
22 | (optional)
23 | (modules ezFetch_lwt)
24 | (preprocess (pps js_of_ocaml-ppx))
25 | (libraries verbose ezRequest_lwt ezjs_fetch.lwt ezAPIJS)
26 | (modes byte))
27 |
28 | (library
29 | (name ezFetch_lwt_i)
30 | (public_name ez_api.ifetch_lwt)
31 | (optional)
32 | (modules ezReq_lwt)
33 | (implements ezReq_lwt)
34 | (libraries ezFetch_lwt)
35 | (modes byte))
36 |
--------------------------------------------------------------------------------
/src/request/js/fetch/ezReq.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzFetch
12 |
--------------------------------------------------------------------------------
/src/request/js/fetch/ezReq_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzFetch_lwt
12 |
--------------------------------------------------------------------------------
/src/request/js/nodejs/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name nodejs_common)
3 | (package ez_api)
4 | (optional)
5 | (modules nodejs_common)
6 | (preprocess (pps ppx_deriving_jsoo))
7 | (libraries verbose ezAPIJS)
8 | (modes byte))
9 |
10 | (library
11 | (name ezNodeJS)
12 | (public_name ez_api.node_js)
13 | (optional)
14 | (modules ezNodeJS)
15 | (libraries ezRequest nodejs_common)
16 | (modes byte))
17 |
18 | (library
19 | (name ezNodeJS_i)
20 | (public_name ez_api.inode_js)
21 | (optional)
22 | (modules ezReq)
23 | (implements ezReq)
24 | (libraries ezNodeJS)
25 | (modes byte))
26 |
27 | (library
28 | (name ezNodeJS_lwt)
29 | (public_name ez_api.node_js_lwt)
30 | (optional)
31 | (modules ezNodeJS_lwt)
32 | (libraries ezRequest_lwt nodejs_common)
33 | (modes byte))
34 |
35 | (library
36 | (name ezNodeJS_lwt_i)
37 | (public_name ez_api.inode_js_lwt)
38 | (optional)
39 | (modules ezReq_lwt)
40 | (implements ezReq_lwt)
41 | (libraries ezNodeJS_lwt)
42 | (modes byte))
43 |
--------------------------------------------------------------------------------
/src/request/js/nodejs/ezReq.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzNodeJS
12 |
--------------------------------------------------------------------------------
/src/request/js/nodejs/ezReq_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzNodeJS_lwt
12 |
--------------------------------------------------------------------------------
/src/request/js/xhr/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezXhr)
3 | (public_name ez_api.xhr)
4 | (optional)
5 | (modules ezXhr)
6 | (preprocess (pps js_of_ocaml-ppx))
7 | (libraries verbose ezRequest ezAPIJS)
8 | (modes byte))
9 |
10 | (library
11 | (name ezXhr_i)
12 | (public_name ez_api.ixhr)
13 | (optional)
14 | (modules ezReq)
15 | (implements ezReq)
16 | (libraries ezXhr)
17 | (modes byte))
18 |
19 | (library
20 | (name ezXhr_lwt)
21 | (public_name ez_api.xhr_lwt)
22 | (optional)
23 | (modules ezXhr_lwt)
24 | (preprocess (pps js_of_ocaml-ppx))
25 | (libraries verbose ezRequest_lwt ezAPIJS js_of_ocaml-lwt)
26 | (modes byte))
27 |
28 | (library
29 | (name ezXhr_lwt_i)
30 | (public_name ez_api.ixhr_lwt)
31 | (optional)
32 | (modules ezReq_lwt)
33 | (implements ezReq_lwt)
34 | (libraries ezXhr_lwt)
35 | (modes byte))
36 |
--------------------------------------------------------------------------------
/src/request/js/xhr/ezReq.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzXhr
12 |
--------------------------------------------------------------------------------
/src/request/js/xhr/ezReq_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzXhr_lwt
12 |
--------------------------------------------------------------------------------
/src/request/unix/cohttp/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezCohttp)
3 | (public_name ez_api.cohttp)
4 | (optional)
5 | (modules ezCohttp)
6 | (libraries cohttp-lwt-unix ezRequest ezCohttp_base))
7 |
8 | (library
9 | (name ezCohttp_i)
10 | (public_name ez_api.icohttp)
11 | (optional)
12 | (modules ezReq)
13 | (implements ezReq)
14 | (libraries ezCohttp))
15 |
16 | (library
17 | (name ezCohttp_lwt)
18 | (public_name ez_api.cohttp_lwt)
19 | (optional)
20 | (modules ezCohttp_lwt)
21 | (libraries cohttp-lwt-unix ezRequest_lwt ezCohttp_base))
22 |
23 | (library
24 | (name ezCohttp_lwt_i)
25 | (public_name ez_api.icohttp_lwt)
26 | (optional)
27 | (modules EzReq_lwt)
28 | (implements ezReq_lwt)
29 | (libraries ezCohttp_lwt))
30 |
--------------------------------------------------------------------------------
/src/request/unix/cohttp/ezCohttp.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | module Base = EzCohttp_base.Make(Cohttp_lwt_unix.Client)
12 |
13 | let () =
14 | let cb v = if v land 4 <> 0 then Cohttp_lwt_unix.Debug.activate_debug () in
15 | Verbose.callback := cb;
16 | cb !Verbose.v
17 |
18 | module Interface = struct
19 |
20 | let get ?meth ?headers ?msg url f =
21 | Lwt.async @@ fun () ->
22 | Lwt.map f (Base.get ?meth ?headers ?msg url)
23 |
24 | let post ?meth ?content_type ?content ?headers ?msg url f =
25 | Lwt.async @@ fun () ->
26 | Lwt.map f (Base.post ?meth ?content_type ?content ?headers ?msg url)
27 |
28 | end
29 |
30 | include EzRequest.Make(Interface)
31 |
--------------------------------------------------------------------------------
/src/request/unix/cohttp/ezCohttp_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | module Base = EzCohttp_base.Make(Cohttp_lwt_unix.Client)
12 |
13 | let () =
14 | let cb v = if v land 4 <> 0 then Cohttp_lwt_unix.Debug.activate_debug () in
15 | Verbose.callback := cb;
16 | cb !Verbose.v
17 |
18 | module Interface = struct
19 |
20 | let get ?meth ?headers ?msg url =
21 | Base.get ?meth ?headers ?msg url
22 |
23 | let post ?meth ?content_type ?content ?headers ?msg url =
24 | Base.post ?meth ?content_type ?content ?headers ?msg url
25 |
26 | end
27 |
28 | include EzRequest_lwt.Make(Interface)
29 |
--------------------------------------------------------------------------------
/src/request/unix/cohttp/ezReq.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCohttp
12 |
--------------------------------------------------------------------------------
/src/request/unix/cohttp/ezReq_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCohttp_lwt
12 |
--------------------------------------------------------------------------------
/src/request/unix/curl/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezCurl_common)
3 | (public_name ez_api.curl_common)
4 | (optional)
5 | (modules ezCurl_common)
6 | (libraries verbose curl))
7 |
8 | (library
9 | (name ezCurl)
10 | (public_name ez_api.curl)
11 | (optional)
12 | (modules ezCurl)
13 | (libraries ezCurl_common ezRequest))
14 |
15 | (library
16 | (name ezCurl_i)
17 | (public_name ez_api.icurl)
18 | (optional)
19 | (modules ezReq)
20 | (implements ezReq)
21 | (libraries ezCurl))
22 |
23 | (library
24 | (name ezCurl_lwt)
25 | (public_name ez_api.curl_lwt)
26 | (optional)
27 | (modules ezCurl_lwt)
28 | (libraries verbose curl.lwt ezCurl_common ezRequest_lwt))
29 |
30 | (library
31 | (name ezCurl_lwt_i)
32 | (public_name ez_api.icurl_lwt)
33 | (optional)
34 | (modules ezReq_lwt)
35 | (implements ezReq_lwt)
36 | (libraries ezCurl_lwt))
37 |
--------------------------------------------------------------------------------
/src/request/unix/curl/ezReq.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCurl
12 |
--------------------------------------------------------------------------------
/src/request/unix/curl/ezReq_lwt.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCurl_lwt
12 |
--------------------------------------------------------------------------------
/src/request/unix/default/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezReq_default)
3 | (public_name ez_api.req_default)
4 | (implements ezReq)
5 | (modules ezReq)
6 | (libraries ezRequest
7 | (select ezReq.ml from
8 | (ezCurl -> ezReq.curl.ml)
9 | (-> ezReq.dummy.ml))))
10 |
11 | (library
12 | (name ezReq_lwt_default)
13 | (public_name ez_api.req_lwt_default)
14 | (implements ezReq_lwt)
15 | (modules ezReq_lwt)
16 | (libraries ezRequest_lwt
17 | (select ezReq_lwt.ml from
18 | (ezHttpun_lwt -> ezReq_lwt.httpun.ml)
19 | (ezCohttp_lwt -> ezReq_lwt.cohttp.ml)
20 | (ezCurl_lwt -> ezReq_lwt.curl.ml)
21 | (-> ezReq_lwt.dummy.ml))))
22 |
--------------------------------------------------------------------------------
/src/request/unix/default/ezReq.curl.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2025 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCurl
12 |
--------------------------------------------------------------------------------
/src/request/unix/default/ezReq.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | module Interface = struct
12 |
13 | let get ?meth:_ ?headers:_ ?msg:_ _url f =
14 | f @@ Error (-2, Some "No http client loaded")
15 |
16 | let post ?meth:_ ?content_type:_ ?content:_ ?headers:_ ?msg:_ _url f =
17 | f @@ Error (-2, Some "No http client loaded")
18 |
19 | end
20 |
21 | include EzRequest.Make(Interface)
22 |
--------------------------------------------------------------------------------
/src/request/unix/default/ezReq_lwt.cohttp.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2025 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCohttp_lwt
12 |
--------------------------------------------------------------------------------
/src/request/unix/default/ezReq_lwt.curl.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2025 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzCurl_lwt
12 |
--------------------------------------------------------------------------------
/src/request/unix/default/ezReq_lwt.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | module Interface = struct
12 | let get ?meth:_ ?headers:_ ?msg:_ _url =
13 | Lwt.return @@ Error (-2, Some "No http client loaded")
14 |
15 | let post ?meth:_ ?content_type:_ ?content:_ ?headers:_ ?msg:_ _url =
16 | Lwt.return @@ Error (-2, Some "No http client loaded")
17 | end
18 |
19 | include EzRequest_lwt.Make(Interface)
20 |
--------------------------------------------------------------------------------
/src/request/unix/default/ezReq_lwt.httpun.ml:
--------------------------------------------------------------------------------
1 | include EzHttpun_lwt
2 |
--------------------------------------------------------------------------------
/src/request/unix/httpun/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name httpun_tls)
3 | (public_name ez_api.httpun_tls)
4 | (optional)
5 | (modules httpun_tls)
6 | (libraries httpun-lwt-unix
7 | (select httpun_tls.ml from
8 | (tls-lwt lwt_ssl -> httpun_tls.both.ml)
9 | (tls-lwt -> httpun_tls.tls.ml)
10 | (lwt_ssl -> httpun_tls.ssl.ml)
11 | (-> httpun_tls.none.ml))))
12 |
13 | (library
14 | (name httpun_client)
15 | (public_name ez_api.httpun_client)
16 | (optional)
17 | (modules httpun_client)
18 | (libraries verbose ez_api httpun_tls))
19 |
20 | (library
21 | (name ezHttpun_lwt)
22 | (public_name ez_api.httpun_lwt)
23 | (optional)
24 | (modules ezHttpun_lwt)
25 | (libraries httpun_client ez_api.request_lwt))
26 |
27 | (library
28 | (name ezHttpun_lwt_i)
29 | (public_name ez_api.ihttpun_lwt)
30 | (optional)
31 | (modules ezReq_lwt)
32 | (implements ez_api.req_lwt)
33 | (libraries ezHttpun_lwt))
34 |
--------------------------------------------------------------------------------
/src/request/unix/httpun/ezHttpun_lwt.ml:
--------------------------------------------------------------------------------
1 | let wrap_error e =
2 | let aux () = Format.asprintf "%a" Httpun_client.pp_error e in
3 | match e with
4 | | `http (code, content) -> code, Some content
5 | | `timeout _ -> 408, Some (aux ())
6 | | `invalid_url _ -> 400, Some (aux ())
7 | | _ -> -1, Some (aux ())
8 |
9 | module Interface = struct
10 | let get ?(meth="GET") ?headers ?msg:_ url =
11 | let meth = EzAPI.Meth.of_string meth in
12 | Lwt.map (Result.map_error wrap_error) @@ Httpun_client.call ~meth ?headers url
13 |
14 | let post ?(meth="POST") ?(content_type="application/json") ?(content="{}") ?headers
15 | ?msg:_ url =
16 | let meth = EzAPI.Meth.of_string meth in
17 | Lwt.map (Result.map_error wrap_error) @@
18 | Httpun_client.call ~meth ?headers ~content ~content_type url
19 | end
20 |
21 | include EzRequest_lwt.Make(Interface)
22 |
--------------------------------------------------------------------------------
/src/request/unix/httpun/ezReq_lwt.ml:
--------------------------------------------------------------------------------
1 | include EzHttpun_lwt
2 |
--------------------------------------------------------------------------------
/src/request/unix/httpun/httpun_tls.none.ml:
--------------------------------------------------------------------------------
1 | let request ?alpn_protocols:_ ~hostname:_ ~socket:_ ~error_handler:_ ~response_handler:_ _req =
2 | Lwt.return_error (`msg "no tls engine installed: `opam install tls-lwt` or `opam install lwt_ssl`")
3 |
--------------------------------------------------------------------------------
/src/request/unix/httpun/httpun_tls.ssl.ml:
--------------------------------------------------------------------------------
1 | let request ?(alpn_protocols=["http/1.1"]) ~hostname ~socket ~error_handler ~response_handler req =
2 | let client_ctx = Ssl.create_context Ssl.TLSv1_3 Ssl.Client_context in
3 | Ssl.honor_cipher_order client_ctx;
4 | Ssl.set_context_alpn_protos client_ctx alpn_protocols;
5 | let uninitialized_socket = Lwt_ssl.embed_uninitialized_socket socket client_ctx in
6 | let ssl_socket = Lwt_ssl.ssl_socket_of_uninitialized_socket uninitialized_socket in
7 | Ssl.set_client_SNI_hostname ssl_socket hostname;
8 | Ssl.set_host ssl_socket hostname;
9 | Lwt.bind (Lwt_ssl.ssl_perform_handshake uninitialized_socket) @@ fun ssl_client ->
10 | Lwt.bind (Httpun_lwt_unix.Client.SSL.create_connection ssl_client) @@ fun connection ->
11 | Lwt.return_ok @@ Httpun_lwt_unix.Client.SSL.request connection req ~error_handler ~response_handler
12 |
--------------------------------------------------------------------------------
/src/request/unix/httpun/httpun_tls.tls.ml:
--------------------------------------------------------------------------------
1 | let request ?(alpn_protocols=["http/1.1"]) ~hostname ~socket ~error_handler ~response_handler req =
2 | let authenticator ?ip:_ ~host:_ _ = Ok None in
3 | let peer_name = Domain_name.(host_exn (of_string_exn hostname)) in
4 | let config = Result.get_ok @@ Tls.Config.client ~alpn_protocols ~authenticator ~peer_name () in
5 | Lwt.bind (Tls_lwt.Unix.client_of_fd config socket) @@ fun tls_client ->
6 | Lwt.bind (Httpun_lwt_unix.Client.TLS.create_connection tls_client) @@ fun connection ->
7 | Lwt.return_ok @@ Httpun_lwt_unix.Client.TLS.request connection req ~error_handler ~response_handler
8 |
--------------------------------------------------------------------------------
/src/request/verbose.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | (*
12 | verbose binary flag
13 | 1: string received over http
14 | 2: string sent over http
15 | 4: library logs
16 | *)
17 |
18 | let v = match Sys.getenv_opt "EZAPICLIENT" with
19 | | Some "true" -> ref 7
20 | | Some x ->
21 | begin match int_of_string_opt x with
22 | | None -> ref 0
23 | | Some i -> ref i
24 | end
25 | | _ -> ref 0
26 |
27 | let callback = ref (fun (_ : int) -> ())
28 |
29 | let set_verbose i =
30 | v := i;
31 | !callback i
32 |
--------------------------------------------------------------------------------
/src/request/virtual/cb/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezReq)
3 | (public_name ez_api.req)
4 | (virtual_modules ezReq)
5 | (libraries ezReq_S)
6 | (default_implementation ezReq_default))
7 |
--------------------------------------------------------------------------------
/src/request/virtual/cb/ezReq.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | module Interface : EzReq_S.Interface
12 | include EzReq_S.S
13 |
--------------------------------------------------------------------------------
/src/request/virtual/lwt/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezReq_lwt)
3 | (public_name ez_api.req_lwt)
4 | (virtual_modules ezReq_lwt)
5 | (libraries ezReq_lwt_S)
6 | (default_implementation ezReq_lwt_default))
7 |
--------------------------------------------------------------------------------
/src/request/virtual/lwt/ezReq_lwt.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2022 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | module Interface : EzReq_lwt_S.Interface
12 | include EzReq_lwt_S.S
13 |
--------------------------------------------------------------------------------
/src/request/virtual/s/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezReq_S)
3 | (public_name ez_api.req_s)
4 | (modules_without_implementation ezReq_S)
5 | (modules ezReq_S)
6 | (libraries ezAPI))
7 |
8 | (library
9 | (name ezReq_lwt_S)
10 | (public_name ez_api.req_lwt_s)
11 | (modules_without_implementation ezReq_lwt_S)
12 | (modules ezReq_lwt_S)
13 | (libraries ezAPI))
14 |
--------------------------------------------------------------------------------
/src/server/cohttp/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezAPIServerCohttp)
3 | (public_name ez_api.server_cohttp)
4 | (optional)
5 | (modules ezAPIServerCohttp)
6 | (libraries cohttp-lwt-unix wsCohttp))
7 |
8 | (library
9 | (name ezServerCohttp)
10 | (public_name ez_api.iserver_cohttp)
11 | (optional)
12 | (implements ezServer)
13 | (modules ezServer)
14 | (libraries ezAPIServerCohttp))
15 |
--------------------------------------------------------------------------------
/src/server/cohttp/ezServer.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzAPIServerCohttp
12 |
--------------------------------------------------------------------------------
/src/server/default/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezServerDefault)
3 | (public_name ez_api.iserver_default)
4 | (implements ezServer)
5 | (modules ezServer)
6 | (libraries
7 | (select ezServer.ml from
8 | (ezAPIServerHttpun -> ezServer.httpun.ml)
9 | (ezAPIServerHttpAf -> ezServer.httpaf.ml)
10 | (ezAPIServerCohttp -> ezServer.cohttp.ml)
11 | (-> ezServer.dummy.ml))))
12 |
--------------------------------------------------------------------------------
/src/server/default/ezServer.cohttp.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzAPIServerCohttp
12 |
--------------------------------------------------------------------------------
/src/server/default/ezServer.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let server ?catch:_ ?allow_origin:_ ?allow_headers:_ ?allow_methods:_ ?allow_credentials:_ ?footer:_ _ =
12 | Format.eprintf
13 | "Cohttp or Httpaf server implementation not availble\n\
14 | Try: `opam install cohttp-lwt-unix`\n\
15 | or: `opam install httpaf-lwt-unix`@.";
16 | Lwt.return_unit
17 |
18 | let set_debug () = ()
19 |
--------------------------------------------------------------------------------
/src/server/default/ezServer.httpaf.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzAPIServerHttpAf
12 |
--------------------------------------------------------------------------------
/src/server/default/ezServer.httpun.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2025 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzAPIServerHttpun
12 |
--------------------------------------------------------------------------------
/src/server/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezAPIServerUtils)
3 | (public_name ez_api.server_utils)
4 | (modules answer directory gMTime timings file ip ezAPIServerUtils)
5 | (libraries ezAPI
6 | (select ip.ml from
7 | (geoip -> ip.geoip.ml)
8 | (-> ip.dummy.ml))))
9 |
10 | (library
11 | (name server_common)
12 | (modules server_common)
13 | (optional)
14 | (package ez_api)
15 | (libraries ezAPIServerUtils lwt.unix bigstringaf)
16 | (foreign_stubs (language c) (names rlimit_no_file)))
17 |
18 | (library
19 | (name ezOpenAPI)
20 | (public_name ez_api.openAPI)
21 | (modules ezOpenAPI)
22 | (libraries ezAPI ezYaml ezjsonm))
23 |
24 | (library
25 | (name ezAPIServer)
26 | (public_name ez_api.server)
27 | (modules ezAPIServer)
28 | (libraries ezServer))
29 |
--------------------------------------------------------------------------------
/src/server/ezAPIServer.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzServer
12 | include EzAPIServerUtils
13 |
--------------------------------------------------------------------------------
/src/server/httpaf/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezAPIServerHttpAf)
3 | (public_name ez_api.server_httpaf)
4 | (optional)
5 | (modules ezAPIServerHttpAf)
6 | (libraries httpaf-lwt-unix wsHttpaf server_common))
7 |
8 | (library
9 | (name ezServerHttpaf)
10 | (public_name ez_api.iserver_httpaf)
11 | (optional)
12 | (implements ezServer)
13 | (modules ezServer)
14 | (libraries ezAPIServerHttpAf))
15 |
--------------------------------------------------------------------------------
/src/server/httpaf/ezServer.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzAPIServerHttpAf
12 |
--------------------------------------------------------------------------------
/src/server/httpun/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezAPIServerHttpun)
3 | (public_name ez_api.server_httpun)
4 | (optional)
5 | (modules ezAPIServerHttpun)
6 | (libraries server_common httpun-lwt-unix wsHttpun))
7 |
8 | (library
9 | (name ezServerHttpun)
10 | (public_name ez_api.iserver_httpun)
11 | (optional)
12 | (implements ezServer)
13 | (modules ezServer)
14 | (libraries ezAPIServerHttpun))
15 |
--------------------------------------------------------------------------------
/src/server/httpun/ezServer.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2025 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzAPIServerHttpun
12 |
--------------------------------------------------------------------------------
/src/server/ip.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let req_ips : (string, EzAPI.ip_info) Hashtbl.t = Hashtbl.create 1111
12 |
13 | let register : float -> string -> unit =
14 | let first = ref true in
15 | fun _ _ ->
16 | if !first then (
17 | first := false;
18 | Format.eprintf
19 | "\027[0;33mwarning: geoip not installed\027[0m\n\
20 | If you need ip information try: `opam install geoip`@.")
21 |
--------------------------------------------------------------------------------
/src/server/rlimit_no_file.c:
--------------------------------------------------------------------------------
1 | #define CAML_NAME_SPACE
2 | #include
3 | #include
4 |
5 | CAMLprim value rlimit_no_file_c() {
6 | struct rlimit rlmt;
7 | getrlimit(RLIMIT_NOFILE, &rlmt);
8 | return Val_int(rlmt.rlim_cur);
9 | }
10 |
--------------------------------------------------------------------------------
/src/server/virtual/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezServer)
3 | (public_name ez_api.server_s)
4 | (virtual_modules ezServer)
5 | (default_implementation ezServerDefault)
6 | (libraries ezAPIServerUtils))
7 |
--------------------------------------------------------------------------------
/src/server/virtual/ezServer.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | open EzAPIServerUtils
12 |
13 | val server : ?catch:(string -> exn -> string Answer.t Lwt.t) ->
14 | ?allow_origin:[ allow_kind | `origin ] -> ?allow_headers:allow_kind ->
15 | ?allow_methods:allow_kind -> ?allow_credentials:bool -> ?footer:string ->
16 | (int * server_kind) list -> unit Lwt.t
17 |
18 | val set_debug : unit -> unit
19 |
--------------------------------------------------------------------------------
/src/server/websocket/cohttp/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name wsCommon)
3 | (public_name ez_api.ws_server_utils)
4 | (optional)
5 | (modules wsCommon)
6 | (libraries websocket ezAPIServerUtils calendar))
7 |
8 | (library
9 | (name wsCohttp)
10 | (public_name ez_api.ws_server_cohttp)
11 | (optional)
12 | (modules wsCohttp)
13 | (libraries
14 | (select wsCohttp.ml from
15 | (websocket-lwt-unix.cohttp wsCommon -> wsCohttp.real.ml)
16 | (ezAPIServerUtils -> wsCohttp.dummy.ml))))
17 |
--------------------------------------------------------------------------------
/src/server/websocket/cohttp/wsCohttp.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let first = ref true
12 |
13 | let ws _req ?onclose:_ ?step:_ ?body:_ ~react:_ ~bg:_ _id =
14 | (if !first then (
15 | first := false;
16 | Format.eprintf
17 | "\027[0;31merror: websocket-lwt-unix not installed\027[0m\n\
18 | try: `opam install calendar websocket-lwt-unix`@."));
19 | Lwt.return_error `no_ws_library
20 |
--------------------------------------------------------------------------------
/src/server/websocket/httpaf/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name wsHttpaf)
3 | (public_name ez_api.ws_server_httpaf)
4 | (optional)
5 | (modules wsHttpaf)
6 | (libraries
7 | (select wsHttpaf.ml from
8 | (ezAPIServerUtils -> wsHttpaf.dummy.ml))))
9 |
--------------------------------------------------------------------------------
/src/server/websocket/httpaf/wsHttpaf.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let first = ref true
12 |
13 | let ws _fd _req ?onclose:_ ?step:_ ?body:_ ~react:_ ~bg:_ _id =
14 | (if !first then (
15 | first := false;
16 | Format.eprintf
17 | "\027[0;31merror: websocket-httpaf-lwt not installed\027[0m\n\
18 | try: `opam install calendar`\n\
19 | `opam pin add websocket-httpaf.~dev https://github.com/anmonteiro/websocket-httpaf.git`\n\
20 | `opam pin add websocket-httpaf-lwt.~dev https://github.com/anmonteiro/websocket-httpaf.git`@."));
21 | Lwt.return_error `no_ws_library
22 |
--------------------------------------------------------------------------------
/src/server/websocket/httpun/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name wsHttpun)
3 | (public_name ez_api.ws_server_httpun)
4 | (optional)
5 | (modules wsHttpun)
6 | (libraries ezAPIServerUtils
7 | (select wsHttpun.ml from
8 | (httpun-ws digestif calendar -> wsHttpun.real.ml)
9 | (-> wsHttpun.dummy.ml))))
10 |
--------------------------------------------------------------------------------
/src/server/websocket/httpun/wsHttpun.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2025 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let first = ref true
12 |
13 | let ws _fd _req ?onclose:_ ?step:_ ?body:_ ~react:_ ~bg:_ _id =
14 | (if !first then (
15 | first := false;
16 | Format.eprintf "\027[0;31merror: websocket are not yet implemented for httpup@."));
17 | Lwt.return_error `no_ws_library
18 |
--------------------------------------------------------------------------------
/src/server/yaml/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezYaml)
3 | (package ez_api)
4 | (modules ezYaml)
5 | (libraries
6 | (select ezYaml.ml from
7 | (yaml -> ezYaml.yaml.ml)
8 | (-> ezYaml.dummy.ml))))
9 |
--------------------------------------------------------------------------------
/src/server/yaml/ezYaml.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let to_string _ = Error (
12 | `Msg "\027[0;33merror: yaml not installed\027[0m\n\
13 | If you need to output yaml try: `opam install yaml`@.")
14 |
--------------------------------------------------------------------------------
/src/server/yaml/ezYaml.yaml.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let to_string = Yaml.to_string
12 |
--------------------------------------------------------------------------------
/src/session/auth_apis/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name google)
3 | (public_name ez_api.google_auth)
4 | (optional)
5 | (modules google)
6 | (libraries ezReq_lwt))
7 |
8 | (library
9 | (name facebook)
10 | (public_name ez_api.facebook_auth)
11 | (optional)
12 | (modules facebook)
13 | (libraries ezReq_lwt))
14 |
--------------------------------------------------------------------------------
/src/session/blake2s/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezHash_blake2s)
3 | (public_name ez_api.blake2s)
4 | (optional)
5 | (modules ezHash)
6 | (implements ezHash)
7 | (libraries digestif.ocaml))
8 |
--------------------------------------------------------------------------------
/src/session/blake2s/ezHash.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let hash s = Digestif.BLAKE2S.(to_raw_string @@ digest_string s)
12 |
--------------------------------------------------------------------------------
/src/session/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezSession)
3 | (public_name ez_api.session)
4 | (modules ezSession)
5 | (libraries ezAPI ezHash))
6 |
7 | (library
8 | (name ezSessionClient)
9 | (public_name ez_api.session_client)
10 | (modules ezSessionClient)
11 | (libraries ezReq ezSession))
12 |
13 | (library
14 | (name ezSessionServer)
15 | (public_name ez_api.server_session)
16 | (wrapped false)
17 | (modules ezCookieServer ezSessionServer)
18 | (libraries ezSession ezAPIServerUtils
19 | (select ezCookieServer.ml from
20 | (cohttp -> ezCookieServer.cohttp.ml)
21 | (-> ezCookieServer.dummy.ml))))
22 |
--------------------------------------------------------------------------------
/src/session/ezCookieServer.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | open EzAPIServerUtils
12 |
13 | let get ( _req : Req.t ) =
14 | Format.eprintf "Dummy implementation of cookie server, to install:\n`opam install cohttp`@.";
15 | StringMap.empty
16 |
17 | let set ?secure:_ ?http_only:_ ?expiration:_ ~name ~value () =
18 | Format.eprintf "Dummy implementation of cookie server, to install:\n`opam install cohttp`@.";
19 | (name, value)
20 |
21 | let clear ~name () = (name, "")
22 |
--------------------------------------------------------------------------------
/src/session/ezCookieServer.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | open EzAPIServerUtils
12 |
13 | (** Looks up request headers and returns map of cookies (cookie_name->cokie_value) *)
14 | val get : Req.t -> string StringMap.t
15 |
16 | (** Discards cookie in the 'Set-Cookie' header by setting its value to empty string and
17 | its max-age to 0*)
18 | val clear : name:string -> unit -> (string * string)
19 |
20 | (** Creates 'Set-Cokie' header with cookie whose name, value and some parameters are
21 | specified. *)
22 | val set :
23 | ?secure:bool ->
24 | ?http_only:bool ->
25 | ?expiration:int64 ->
26 | name:string -> value:string -> unit -> (string * string)
27 |
--------------------------------------------------------------------------------
/src/session/ezHash.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
--------------------------------------------------------------------------------
/src/session/md5/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezHash_md5)
3 | (public_name ez_api.md5)
4 | (modules ezHash)
5 | (implements ezHash))
6 |
--------------------------------------------------------------------------------
/src/session/md5/ezHash.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let hash = Digest.string
12 |
--------------------------------------------------------------------------------
/src/session/sha2/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezHash_sha2)
3 | (public_name ez_api.sha2)
4 | (optional)
5 | (modules ezHash)
6 | (implements ezHash)
7 | (libraries digestif.ocaml))
8 |
--------------------------------------------------------------------------------
/src/session/sha2/ezHash.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let hash s = Digestif.SHA256.(to_raw_string @@ digest_string s)
12 |
--------------------------------------------------------------------------------
/src/session/sha3/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezHash_sha3)
3 | (public_name ez_api.sha3)
4 | (optional)
5 | (modules ezHash)
6 | (implements ezHash)
7 | (libraries digestif.ocaml))
8 |
--------------------------------------------------------------------------------
/src/session/sha3/ezHash.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let hash s = Digestif.SHA3_256.(to_raw_string @@ digest_string s)
12 |
--------------------------------------------------------------------------------
/src/session/virtual/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezHash)
3 | (public_name ez_api.hash)
4 | (virtual_modules ezHash)
5 | (modules ezHash)
6 | (default_implementation ezHash_md5))
7 |
--------------------------------------------------------------------------------
/src/session/virtual/ezHash.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | (** Hash function implementation depending, on imported library. Currently supported ones:
12 | md5, sha2, sha3 and blake2s. *)
13 |
14 | val hash : string -> string
15 |
--------------------------------------------------------------------------------
/src/tools/loads/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezLoads)
3 | (public_name ez_api.loads)
4 | (optional)
5 | (modules ezLoads)
6 | (preprocess (pps ppx_deriving_encoding))
7 | (libraries ez_api.req_lwt str))
8 |
9 | (library
10 | (name ezLoads_offset)
11 | (public_name ez_api.loads_offset)
12 | (optional)
13 | (modules ezLoads_offset)
14 | (preprocess (pps ppx)))
15 |
--------------------------------------------------------------------------------
/src/tools/loads/ezLoads_offset.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | let section = EzAPI.Doc.section "EzLoads"
12 |
13 | let service_offset : (float * float, exn, EzAPI.no_security) EzAPI.service0 =
14 | EzAPI.service ~section ~output:Json_encoding.(tup2 float float)
15 | EzAPI.Path.(root // "ezloads_offset")
16 |
17 | let handler_offset req _ () =
18 | EzAPIServerUtils.return_ok (req.EzAPI.Req.req_time, Unix.gettimeofday ())
19 |
20 | let register dir =
21 | EzAPIServerUtils.register service_offset handler_offset dir
22 |
--------------------------------------------------------------------------------
/src/tools/recaptcha/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezRecaptcha)
3 | (public_name ez_api.recaptcha)
4 | (optional)
5 | (modules ezRecaptcha)
6 | (libraries ezReq_lwt calendar))
7 |
--------------------------------------------------------------------------------
/src/tools/sendgrid/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezSendgrid_encoding)
3 | (public_name ez_api.sendgrid_encoding)
4 | (wrapped false)
5 | (optional)
6 | (modules ezSendgrid_types ezSendgrid_encoding)
7 | (libraries ezEncoding))
8 |
9 | (library
10 | (name ezSendgrid_services)
11 | (public_name ez_api.sendgrid_services)
12 | (optional)
13 | (modules ezSendgrid_services)
14 | (libraries ezAPI ezSendgrid_encoding))
15 |
16 | (library
17 | (name ezSendgrid)
18 | (public_name ez_api.sendgrid)
19 | (optional)
20 | (modules ezSendgrid)
21 | (libraries ezReq_lwt calendar ezSendgrid_services))
22 |
--------------------------------------------------------------------------------
/src/websocket/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezWsCommon)
3 | (public_name ez_api.ws_types)
4 | (modules ezWsCommon)
5 | (libraries lwt ezDebug ezEncoding))
6 |
--------------------------------------------------------------------------------
/src/websocket/js/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezWs_js)
3 | (public_name ez_api.ws_js)
4 | (optional)
5 | (modules ezWs)
6 | (preprocess (pps js_of_ocaml-ppx))
7 | (implements ezWs)
8 | (libraries ezAPIJS))
9 |
--------------------------------------------------------------------------------
/src/websocket/unix/cohttp/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezWs_cohttp)
3 | (public_name ez_api.ws_cohttp)
4 | (optional)
5 | (modules ezWs)
6 | (implements ezWs)
7 | (libraries websocket-lwt-unix))
8 |
--------------------------------------------------------------------------------
/src/websocket/unix/default/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezWs_default)
3 | (public_name ez_api.ws_default)
4 | (modules ezWs)
5 | (implements ezWs)
6 | (libraries
7 | (select ezWs.ml from
8 | (httpun-ws-lwt-unix -> ezWs.httpun.ml)
9 | (websocket-lwt-unix -> ezWs.cohttp.ml)
10 | (-> ezWs.dummy.ml))))
11 |
--------------------------------------------------------------------------------
/src/websocket/unix/default/ezWs.cohttp.ml:
--------------------------------------------------------------------------------
1 | ../cohttp/ezWs.ml
--------------------------------------------------------------------------------
/src/websocket/unix/default/ezWs.dummy.ml:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2025 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzWsCommon.Types
12 |
13 | let err = "ezWs not implemented, either install httpun-ws-lwt-unix or websocket-lwt-unix"
14 |
15 | let connect ?msg:_ ?protocols:_ ?error:_ ~react:_ _url = Lwt.return_error err
16 |
17 | let connect0 ?msg:_ ?protocols:_ ?error:_ ~react:_ _base _service = Lwt.return_error err
18 |
--------------------------------------------------------------------------------
/src/websocket/unix/default/ezWs.httpun.ml:
--------------------------------------------------------------------------------
1 | ../httpun/ezWs.ml
--------------------------------------------------------------------------------
/src/websocket/unix/httpun/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezWs_httpun)
3 | (public_name ez_api.ws_httpun)
4 | (optional)
5 | (modules ezWs)
6 | (implements ezWs)
7 | (libraries httpun-ws-lwt-unix))
8 |
--------------------------------------------------------------------------------
/src/websocket/virtual/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name ezWs)
3 | (public_name ez_api.ws)
4 | (optional)
5 | (virtual_modules ezWs)
6 | (libraries ezWsCommon ezAPI)
7 | (default_implementation ezWs_default))
8 |
--------------------------------------------------------------------------------
/src/websocket/virtual/ezWs.mli:
--------------------------------------------------------------------------------
1 | (**************************************************************************)
2 | (* *)
3 | (* Copyright 2018-2023 OCamlPro *)
4 | (* *)
5 | (* All rights reserved. This file is distributed under the terms of the *)
6 | (* GNU Lesser General Public License version 2.1, with the special *)
7 | (* exception on linking described in the file LICENSE. *)
8 | (* *)
9 | (**************************************************************************)
10 |
11 | include EzWsCommon.S
12 |
13 | val connect :
14 | ?msg:string ->
15 | ?protocols:string list ->
16 | ?error:(string action -> string -> unit) ->
17 | react:(string action -> string -> unit rp) ->
18 | string ->
19 | string ws rp
20 |
21 | val connect0 :
22 | ?msg:string ->
23 | ?protocols:string list ->
24 | ?error:(string action -> string -> unit) ->
25 | react:('input action -> ('output, 'error) result -> unit rp) ->
26 | EzAPI.base_url ->
27 | ('input, 'output, 'error, _) EzAPI.ws_service0 ->
28 | 'input ws rp
29 |
--------------------------------------------------------------------------------
/test/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name test)
3 | (modules test)
4 | (optional)
5 | (libraries ez_api.request ez_api.server ez_api.server_session ez_api.session_client))
6 |
7 | (executable
8 | (name main_cohttp)
9 | (modules main_cohttp)
10 | (optional)
11 | (libraries test ezCohttp))
12 |
13 | (executable
14 | (name main_curl)
15 | (modules main_curl)
16 | (optional)
17 | (libraries test ezCurl))
18 |
19 | (executable
20 | (name test_ws)
21 | (modules test_ws)
22 | (optional)
23 | (libraries ez_api.ws_cohttp))
24 |
--------------------------------------------------------------------------------
/test/loads/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name test_loads_lib)
3 | (modules test_loads_lib)
4 | (preprocess (pps ez_api.ppx))
5 | (libraries ez_api.loads_offset))
6 |
7 | (executable
8 | (name test_loads_server)
9 | (modules test_loads_server)
10 | (preprocess (pps ez_api.ppx_server))
11 | (libraries test_loads_lib))
12 |
13 | (executable
14 | (name test_loads)
15 | (modules test_loads)
16 | (libraries test_loads_lib ez_api.loads ez_api.icurl_lwt))
17 |
--------------------------------------------------------------------------------
/test/loads/test_loads.ml:
--------------------------------------------------------------------------------
1 | let () =
2 | EzLoads.execute [ Test_loads_lib.section; EzLoads_offset.section ]
3 |
--------------------------------------------------------------------------------
/test/loads/test_loads_lib.ml:
--------------------------------------------------------------------------------
1 | let output = Json_encoding.(obj1 (req "success" (constant "true")))
2 | let section = EzAPI.Doc.section "main"
3 | let arg = EzAPI.Arg.string ~example:"machin" "id"
4 | let params = [ EzAPI.Param.string "foo" ]
5 |
6 | let h _s =
7 | EzAPIServerUtils.return_ok ()
8 | [@@get {path="/test/{arg}"; output; section; params}]
9 |
10 | let ppx_dir = EzLoads_offset.register ppx_dir
11 |
--------------------------------------------------------------------------------
/test/loads/test_loads_server.ml:
--------------------------------------------------------------------------------
1 | open Test_loads_lib
2 |
3 | [%%server 8080]
4 |
--------------------------------------------------------------------------------
/test/main_cohttp.ml:
--------------------------------------------------------------------------------
1 |
2 | let () =
3 | EzCohttp.init (); (* Use Cohttp implementation for Xhr *)
4 | Test.main ()
5 |
--------------------------------------------------------------------------------
/test/main_curl.ml:
--------------------------------------------------------------------------------
1 |
2 | let () =
3 | EzCurl.init (); (* Use Curl implementation for Xhr *)
4 | (* EzXhr.init (); (* Use Javascript implementation for Xhr *) *)
5 | Test.main ()
6 |
--------------------------------------------------------------------------------
/test/ppx/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name test_ppx_lib)
3 | (modules test_ppx_lib)
4 | (preprocess (pps ppx_deriving_encoding ez_api.ppx_req)))
5 |
6 | (executable
7 | (name test_ppx_server)
8 | (modules test_ppx_server)
9 | (preprocess (pps ez_api.ppx_server))
10 | (libraries test_ppx_lib))
11 |
12 | (executable
13 | (name test_ppx_client)
14 | (modules test_ppx_client)
15 | (libraries test_ppx_lib ez_api.ixhr_lwt)
16 | (modes js))
17 |
18 | (library
19 | (name test_ppx_err_case)
20 | (modules test_ppx_err_case)
21 | (preprocess (pps ez_api.ppx ez_api.ppx_err_case)))
22 |
--------------------------------------------------------------------------------
/test/ppx/test_ppx_client.ml:
--------------------------------------------------------------------------------
1 | open Test_ppx_lib
2 | open Lwt.Infix
3 |
4 | let () =
5 | EzLwtSys.run @@ fun () ->
6 | EzReq_lwt.post0 (EzAPI.BASE "http://localhost:8080") echo_input ~input:"bla" >|= function
7 | | Error (EzReq_lwt_S.UnknownError {code; msg}) ->
8 | EzDebug.printf "error %d %s" code (Option.value ~default:"none" msg)
9 | | Error _ -> EzDebug.printf "error"
10 | | Ok s -> EzDebug.printf "ok %s" s
11 |
--------------------------------------------------------------------------------
/test/ppx/test_ppx_err_case.ml:
--------------------------------------------------------------------------------
1 | type error = .. [@@deriving err_case]
2 |
3 | type error +=
4 | | NotFound of string [@code 404]
5 | | Unauthorized of string [@code 401]
6 | | Error1
7 | | Error2
8 | [@@deriving err_case {code=400}]
9 |
10 | let%err_case generic_case : error EzAPI.Err.case = 400
11 |
--------------------------------------------------------------------------------
/test/ppx/test_ppx_lib.ml:
--------------------------------------------------------------------------------
1 |
2 | type error = {
3 | name: string;
4 | msg: string;
5 | } [@@deriving encoding]
6 |
7 | let%secu bearer = `Bearer {EzAPI.Security.bearer_name="Bearer"; format=None}
8 |
9 | let%service errors = [
10 | EzAPI.Err.make ~code:400 ~name:"Error" ~encoding:error_enc ~select:Option.some ~deselect:Fun.id
11 | ]
12 | and security : [ EzAPI.Security.none | EzAPI.Security.bearer ] list = [ bearer ]
13 | and base = "http://localhost:8080"
14 |
15 | type test_derive = {
16 | foo: string;
17 | bar: int;
18 | } [@@get {path="/test/getter/{id: string}/{numb: int}"; name="bla"}]
19 |
20 | type foo = [ `foo | `bar ] [@@deriving encoding {assoc}]
21 |
22 | let%param foo : foo = {assoc; required}
23 |
24 | let%post echo_input = {
25 | path="/echo_input"; raw_input=["text/plain"];
26 | output=Json_encoding.(obj1 (req "test" string));
27 | params=[foo]; security
28 | }
29 |
--------------------------------------------------------------------------------
/test/ppx/test_ppx_server.ml:
--------------------------------------------------------------------------------
1 | let%param foo = ()
2 |
3 | let echo ([%req], s) () =
4 | Format.eprintf "foo: %s@." @@ Option.value ~default:"none" req#foo;
5 | EzAPIServer.return_ok @@ "echo arg: " ^ s
6 | [@@get {path="/echo/{arg : string}"; raw_output=[]; params=[foo]}]
7 |
8 | let echo_input s =
9 | EzAPIServer.return_ok @@ "echo input: " ^ s
10 | [@@service {service=Test_ppx_lib.echo_input} ]
11 |
12 | let rec react s =
13 | Lwt.return_ok @@ "ws echo: " ^ s
14 | and bg r sec send =
15 | send (Ok "Hey!");
16 | Lwt.bind (EzLwtSys.sleep 30.) (fun () -> bg r sec send)
17 | and onclose _ =
18 | Lwt.return_unit
19 | [@@websocket {path="/ws"; input=Json_encoding.string; output=Json_encoding.string}]
20 |
21 | [%%server 8080]
22 |
--------------------------------------------------------------------------------
/test/session/Makefile:
--------------------------------------------------------------------------------
1 |
2 | CLIENT_BIN_PATH=../../_build/default/test/session/test_cookie_client.bc.js
3 | SERVER_BIN_PATH=../../_build/default/test/session/test_cookie_server.exe
4 |
5 | all: build website api-server
6 |
7 | build:
8 | dune build --profile release
9 |
10 | website: $(CLIENT_BIN_PATH)
11 | cp -f $(CLIENT_BIN_PATH) client.js
12 |
13 | api-server: $(SERVER_BIN_PATH)
14 | cp -f $(SERVER_BIN_PATH) server.exe
15 |
16 | run-web: website
17 | php -S localhost:8885
18 |
19 | run-api: api-server
20 | ./server.exe
21 |
--------------------------------------------------------------------------------
/test/session/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name test_session_lib)
3 | (modules test_session_lib)
4 | (libraries ez_api.session))
5 |
6 | (executable
7 | (name test_cookie_client)
8 | (modules test_cookie_client)
9 | (preprocess (pps js_of_ocaml-ppx))
10 | (libraries test_session_lib ez_api.session_client
11 | (select test_cookie_client.ml from
12 | (ez_api.coxhr -> test_cookie_client.real.ml)
13 | (-> test_cookie_client.dummy.ml)))
14 | (modes js)
15 | (js_of_ocaml (flags (:standard --no-sourcemap))))
16 |
17 | (executable
18 | (name test_cookie_server)
19 | (modules test_cookie_server)
20 | (libraries test_session_lib ez_api.server_session ez_api.server))
21 |
--------------------------------------------------------------------------------
/test/session/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Test cookie session
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Connection status
12 |
13 |
14 |
15 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/test/session/test_cookie_client.dummy.ml:
--------------------------------------------------------------------------------
1 | let () =
2 | EzDebug.printf
3 | "test_cookie_client requires the libraries `digestif` and `js_of_ocaml`:\n\
4 | `opam install digestif js_of_ocaml`"
5 |
--------------------------------------------------------------------------------
/test/test_ws.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/test_ws.ml:
--------------------------------------------------------------------------------
1 | open Lwt.Infix
2 |
3 | let () =
4 | Cohttp_lwt_unix.Debug.activate_debug ();
5 | EzLwtSys.run @@ fun () ->
6 | EzWs.connect ~msg:"test" ~react:(fun _send s ->
7 | EzDebug.printf "message received %s" s; Lwt.return_ok ())
8 | "ws://localhost:9000" >>= function
9 | | Ok {EzWs.action = {EzWs.send; _}; conn; _} ->
10 | EzLwtSys.sleep 10. >>= fun () ->
11 | send "message" >>= begin function
12 | | Ok _ ->
13 | EzDebug.printf "message sent";
14 | conn >>= fun _ ->
15 | Lwt.return @@ EzDebug.printf "loop error"
16 | | Error s ->
17 | Lwt.return @@ EzDebug.printf "message error %s" s
18 | end
19 | | Error s ->
20 | Lwt.return @@ EzDebug.printf "cannot connect %s" s
21 |
--------------------------------------------------------------------------------
/test/websocket/dune:
--------------------------------------------------------------------------------
1 | (library
2 | (name test_ws_lib)
3 | (modules test_ws_lib)
4 | (libraries ez_api))
5 |
6 | (executable
7 | (name test_ws_server)
8 | (modules test_ws_server)
9 | (libraries test_ws_lib ez_api.server))
10 |
11 | (executable
12 | (name test_ws_client)
13 | (modules test_ws_client)
14 | (libraries test_ws_lib ez_api.ws))
15 |
--------------------------------------------------------------------------------
/test/websocket/test_ws_client.ml:
--------------------------------------------------------------------------------
1 | open EzWs
2 | open Lwt.Infix
3 |
4 | let react _send = function
5 | | Ok s ->
6 | EzDebug.printf "client react: %s" s;
7 | Lwt.return_ok ()
8 | | Error exn ->
9 | EzDebug.printf "client react to error: %s" (Printexc.to_string exn);
10 | Lwt.return_ok ()
11 |
12 | let error content =
13 | Lwt.return @@ EzDebug.printf "client error %s" content
14 |
15 | let handle {conn; action = {send; close}} =
16 | let rec loop i =
17 | EzDebug.printf "client loop step %d" i;
18 | send @@ "client send " ^ string_of_int i >>= function
19 | | Error _ -> close None
20 | | Ok () -> Lwt.bind (EzLwtSys.sleep 11.) (fun () -> loop (i+1)) in
21 | Lwt.choose [ conn; loop 0 ]
22 |
23 | let main () =
24 | connect0 ~msg:"ws" ~react (EzAPI.BASE "http://localhost:8080") Test_ws_lib.service >>= function
25 | | Error e -> error e
26 | | Ok con -> handle con >>= function
27 | | Error e -> error e
28 | | Ok () ->
29 | EzDebug.printf "client connection ended properly";
30 | Lwt.return_unit
31 |
32 | let () =
33 | EzLwtSys.run main
34 |
--------------------------------------------------------------------------------
/test/websocket/test_ws_lib.ml:
--------------------------------------------------------------------------------
1 | open EzAPI
2 |
3 | let service : (string, string, exn, no_security) ws_service0 =
4 | ws_service
5 | ~input:(Json Json_encoding.string)
6 | ~output:(Json Json_encoding.string)
7 | Path.root
8 |
--------------------------------------------------------------------------------
/test/websocket/test_ws_server.ml:
--------------------------------------------------------------------------------
1 | open EzAPIServer
2 | open Lwt.Infix
3 |
4 | module ReqSet = Set.Make(Uuidm)
5 |
6 | let on = ref ReqSet.empty
7 |
8 | (* react handler *)
9 | let react req _sec s =
10 | on := ReqSet.add req.EzAPI.Req.req_id !on;
11 | EzDebug.printf "server react: %s" s;
12 | Lwt.return_ok @@ "server echo: " ^ s
13 |
14 | (* background loop handler *)
15 | let bg req _sec send =
16 | on := ReqSet.add req.EzAPI.Req.req_id !on;
17 | let rec aux i =
18 | EzDebug.printf "server loop step %d" i;
19 | send @@ Ok ("server send " ^ string_of_int i);
20 | EzLwtSys.sleep 10. >>= fun () ->
21 | if ReqSet.mem req.EzAPI.Req.req_id !on then aux (i+1)
22 | else Lwt.return_unit in
23 | aux 0
24 |
25 | let onclose req =
26 | on := ReqSet.remove req.EzAPI.Req.req_id !on;
27 | EzDebug.printf "server close";
28 | Lwt.return_unit
29 |
30 | (* server services *)
31 | let services = register_ws Test_ws_lib.service ~onclose ~react ~bg empty
32 |
33 | let main () = server [ 8080, API services ]
34 |
35 | let () =
36 | EzLwtSys.run main
37 |
--------------------------------------------------------------------------------