https://github.com/bhojpur/web
The Bhojpur Web is a high performance, HTTP client/server engine applied within the Bhojpur.NET Platform ecosystem to deliver secure W3C standards compliant applications and services. It enables faster distributed enterprise application development and testing.
https://github.com/bhojpur/web
http http-proxy http-server https load-testing reverse-proxy ssl testing tls
Last synced: 7 months ago
JSON representation
The Bhojpur Web is a high performance, HTTP client/server engine applied within the Bhojpur.NET Platform ecosystem to deliver secure W3C standards compliant applications and services. It enables faster distributed enterprise application development and testing.
- Host: GitHub
- URL: https://github.com/bhojpur/web
- Owner: bhojpur
- License: mit
- Created: 2022-01-13T04:28:58.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-01T17:01:45.000Z (about 3 years ago)
- Last Synced: 2025-03-17T17:51:03.200Z (10 months ago)
- Topics: http, http-proxy, http-server, https, load-testing, reverse-proxy, ssl, testing, tls
- Language: Go
- Homepage: https://page.bhojpur-consulting.com/product/web/
- Size: 23.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bhojpur Web - Application Service Framework
The `Bhojpur Web` is an enterprise grade, distributed `applications`/`services` framework, and
a client/server engine used by the [Bhojpur.NET Platform](https://github.com/bhojpur/platform)
for secure applications and/or services delivery using HTTP(S) protocols. It is pre-integrated
with the [Bhojpur IAM](https://github.com/bhojpur/iam) for enable identity and access management.
## Server Engine
It is used as a primary HTTP(S) server engine within the [Bhojpur.NET Platform](https://github.com/bhojpur/platform) ecosystem to host a wide range of web-enabled applications or services. It complies fully with the HTTP1.1, HTTP/2.0 protocol standards. It can function as a `WebAssembly` hosting environment as well.
## Client Engine
Just like the cURL utility, it could be utilized as an HTTP/S client software by application
software testing tools. For example, web performance testing tools benefit from the statistics
framework.
### WebAssembly Application
The `client-side` framework features development of web applications based on `WebAssembly` in Go.
You can compile a custom developed web application using the following commands.
```bash
$ GOARCH=wasm GOOS=js go build -o web/app.wasm
$ go build -o myapp
```
**NOTE** that the build output is explicitly set to `web/app.wasm`. The reason why it is that way:
the HTTP `Handler` associated from the **client-side** engine expects it to be a static resource
located at the `/web/app.wasm` path.
## Reverse Proxy
It is used as a primary Reverse Proxy server within the [Bhojpur.NET Platform](https://github.com/bhojpur/platform) ecosystem to route HTTP traffic securely among applications.
## Application Generators
Using template files, it can automatically generate web application for multiple languages.
```bash
$ webctl generate --pkg testdata views/... --o views.go
```
## Application Performance Testing
The Bhojpur Web is used as a distributed application load testing tool. We benchmark HTTP servers and applications using different features built into the framework.
### Load Testing Usage
```bash
$ webctl perftest [options] URL
```
Application Options:
--num-requests Number of requests to make (1)
--concurrent Number of concurrent connections to make (1)
--keep-alive Use keep alive connection
--no-gzip Disable gzip accept encoding
--secure-tls Validate TLS/SSL certificates
#### For Example
```bash
$ webctl perftest --num-requests 100 --concurrent 4 https://www.bhojpur.net
```
Then, it would display something like this
```bash
# Requests: 100
# Successes: 100
# Failures: 0
# Unavailable: 0
Duration: 1.719238256s
Average Request Duration: 13.575435ms
```