Skip to content

Commit

Permalink
chore: fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
robjtede committed Aug 7, 2024
1 parent b7b1005 commit f30795f
Show file tree
Hide file tree
Showing 16 changed files with 100 additions and 89 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/clippy-fmt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@ jobs:
timeout-minutes: 30
uses: giraffate/clippy-action@v1
with:
reporter: 'github-pr-check'
reporter: "github-pr-check"
github_token: ${{ secrets.GITHUB_TOKEN }}
clippy_flags: --workspace --all-features --tests
7 changes: 3 additions & 4 deletions .prettierrc.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
singleQuote: true
arrowParens: avoid
arrowParens: "avoid"
semi: false
overrides:
- files: '*.md'
- files: "*.md"
options:
printWidth: 9999
proseWrap: never
proseWrap: "never"

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@

> Curated examples using the Actix ecosystem.
<!-- prettier-ignore-start -->

[![build status](https://github.com/actix/examples/workflows/CI%20%28Linux%29/badge.svg?branch=master&event=push)](https://github.com/actix/examples/actions)
[![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x)

<!-- prettier-ignore-end -->

## Community Showcase

- [Merino](https://github.com/mozilla-services/merino): Web service for Firefox Suggest.
Expand Down Expand Up @@ -52,9 +56,9 @@
- [Fullstack-Rust](https://github.com/vascokk/fullstack-rust): A Full Stack Rust application (Connect5 game) with Actix Web, Yew, Bulma CSS and Diesel.
- [Mozilla Services Skeleton App](https://github.com/mozilla-services/skeleton)
- [rayspace.dev](https://github.com/ryspc/rayspace.dev): Minimalist dev portfolio and blog implemented as a Rust-powered SPA, featuring GitHub OAuth, session management, static file serving, API endpoints, and SQLx integration.
- [Blog with markdown rendering](https://github.com/gemini-15/blog-engine): Blog example built with Actix Web, diesel (with Postgres) and r2d2 rendering articles in markdown with metadata and a front-end with React.
- [Blog with markdown rendering](https://github.com/gemini-15/blog-engine): Blog example built with Actix Web, diesel (with Postgres) and r2d2 rendering articles in markdown with metadata and a front-end with React.
- [Rust, Angular, PostgreSQL and JWT Security](https://github.com/stav121/actix-angular-project-template): Boilerplate project that implements an Angular + Actix Web application with login and registration pages, that is pre-dockerized.
- [planters_cycle](https://github.com/grimm-integrations/planters_cycle): Another boilerplate fullstack application with identity system, prisma and NextJs.
- [planters_cycle](https://github.com/grimm-integrations/planters_cycle): Another boilerplate fullstack application with identity system, prisma and NextJs.

## Paid Resources

Expand Down
1 change: 1 addition & 0 deletions auth/casbin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ cargo run (or ``cargo watch -x run``)
```

In this example, you can get the:

- successful result at [http://localhost:8080/success](http://localhost:8080/success) (accessible)
- failed result at [http://localhost:8080/fail](http://localhost:8080/fail) (inaccessible, `ERR_EMPTY_RESPONSE`).

Expand Down
14 changes: 7 additions & 7 deletions auth/simple-auth-server/static/main.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
function post(url = ``, data = {}) {
// Default options are marked with *
return fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, cors, *same-origin
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
method: "POST", // *GET, POST, PUT, DELETE, etc.
mode: "cors", // no-cors, cors, *same-origin
cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
headers: {
'Content-Type': 'application/json; charset=utf-8',
"Content-Type": "application/json; charset=utf-8",
},
redirect: 'follow', // manual, *follow, error
referrer: 'no-referrer', // no-referrer, *client
redirect: "follow", // manual, *follow, error
referrer: "no-referrer", // no-referrer, *client
body: JSON.stringify(data), // body data type must match "Content-Type" header
}).then(response => response.json()); // parses response to JSON
}).then(response => response.json()) // parses response to JSON
}

// window.addEventListener('load', function() {
Expand Down
12 changes: 6 additions & 6 deletions basics/static-files/static/root/js/example.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
jQuery(document).ready(function () {
let rotation = 0;
jQuery("img").click(function () {
rotation += 360;
jQuery("img").css({'transform': 'rotate(' + rotation + 'deg)'});
});
});
let rotation = 0
jQuery("img").click(function () {
rotation += 360
jQuery("img").css({ transform: "rotate(" + rotation + "deg)" })
})
})
2 changes: 1 addition & 1 deletion cors/backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ cargo run
### web client

- [http://localhost:8080/user/info](http://localhost:8080/user/info)
```json5
```json
// payload structure
{
"username": "username",
Expand Down
6 changes: 3 additions & 3 deletions cors/frontend/src/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// import './assets/main.css'

import { createApp } from 'vue'
import App from './App.vue'
import { createApp } from "vue"
import App from "./App.vue"

createApp(App).mount('#app')
createApp(App).mount("#app")
16 changes: 7 additions & 9 deletions cors/frontend/vite.config.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
import { fileURLToPath, URL } from 'node:url'
import { fileURLToPath, URL } from "node:url"

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"

// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
],
plugins: [vue()],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
})
7 changes: 4 additions & 3 deletions databases/postgres/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@

### NOTE:

You may need to ensure that you are running the commands with the correct SQL user.
On many Linux distributions you may prefix the shell commands with `sudo -u postgres`
You may need to ensure that you are running the commands with the correct SQL user. On many Linux distributions you may prefix the shell commands with `sudo -u postgres`

1. Create database user

Expand All @@ -25,6 +24,7 @@ On many Linux distributions you may prefix the shell commands with `sudo -u post
This step is **optional** and you can also use an existing database user for that. Just make sure to replace `test_user` by the database user of your choice in the following steps and change the `.env` file containing the configuration accordingly.

An alternative using SQL:

```sql
CREATE USER test_user WITH PASSWORD 'testing';
```
Expand All @@ -36,6 +36,7 @@ On many Linux distributions you may prefix the shell commands with `sudo -u post
```

An alternative using SQL:

```sql
CREATE DATABASE testing_db OWNER test_user;
```
Expand All @@ -54,7 +55,7 @@ On many Linux distributions you may prefix the shell commands with `sudo -u post
GRANT ALL PRIVILEGES ON SCHEMA testing TO test_user;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA testing TO test_user;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA testing TO test_user;
```
```

5. Create `.env` file:

Expand Down
4 changes: 1 addition & 3 deletions graphql/juniper/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,7 @@ _Mutation example:_

```graphql
mutation {
createHuman(
newHuman: { name: "Fresh Kid Ice", appearsIn: EMPIRE, homePlanet: "earth" }
) {
createHuman(newHuman: { name: "Fresh Kid Ice", appearsIn: EMPIRE, homePlanet: "earth" }) {
id
name
appearsIn
Expand Down
13 changes: 13 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
_list:
@just --list

# Format project.
[group("lint")]
fmt:
cargo +nightly fmt
fd --type=file --hidden --extension=yml --extension=md --extension=js --exec-batch npx -y prettier --write

# Run Clippy over workspace.
[group("lint")]
clippy:
cargo clippy --workspace --all-targets --all-features
52 changes: 26 additions & 26 deletions server-sent-events/benchmark.js
Original file line number Diff line number Diff line change
@@ -1,73 +1,73 @@
const http = require('http')
const http = require("http")

const n = 120
let connected = 0
let messages = 0
let start = Date.now()
let phase = 'connecting'
let phase = "connecting"
let connection_time
let broadcast_time

let message = process.argv[2] || 'msg'
let expected_data = 'data: ' + message
let message = process.argv[2] || "msg"
let expected_data = "data: " + message

for (let i = 0; i < n; i++) {
http
.get(
{
host: '127.0.0.1',
host: "127.0.0.1",
port: 8080,
path: '/events',
path: "/events",
},
(response) => {
response.on('data', (data) => {
response => {
response.on("data", data => {
if (data.includes(expected_data)) {
messages += 1
} else if (data.includes('data: connected\n')) {
} else if (data.includes("data: connected\n")) {
connected += 1
}
})
}
},
)
.on('error', (_) => {})
.on("error", _ => {})
}

setInterval(() => {
if (phase === 'connecting' && connected === n) {
if (phase === "connecting" && connected === n) {
// done connecting
phase = 'messaging'
phase = "messaging"
connection_time = Date.now() - start
}

if (phase === 'messaging') {
phase = 'waiting'
if (phase === "messaging") {
phase = "waiting"
start = Date.now()

http
.request(
{
method: 'POST',
host: '127.0.0.1',
method: "POST",
host: "127.0.0.1",
port: 8080,
path: '/broadcast/' + message,
path: "/broadcast/" + message,
},
response => {
response.on("data", _ => {})
},
(response) => {
response.on('data', (_) => {})
}
)
.end()
}

if (phase === 'waiting' && messages >= n) {
if (phase === "waiting" && messages >= n) {
// all messages received
broadcast_time = Date.now() - start
phase = 'paused'
phase = "paused"
messages = 0
phase = 'messaging'
phase = "messaging"
}

process.stdout.write('\r\x1b[K')
process.stdout.write("\r\x1b[K")
process.stdout.write(
`Connected: ${connected}, connection time: ${connection_time} ms, total broadcast time: ${broadcast_time} ms`
`Connected: ${connected}, connection time: ${connection_time} ms, total broadcast time: ${broadcast_time} ms`,
)
}, 20)
25 changes: 13 additions & 12 deletions server-sent-events/drain.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
const http = require('http')
const http = require("http")

let drop_goal = 5_000
let dropped = 0

let query = {
method: 'POST',
host: '127.0.0.1',
method: "POST",
host: "127.0.0.1",
port: 8080,
path: '/events',
path: "/events",
}

setInterval(() => {
if (dropped < drop_goal) {
let request = http
.request(query, (response) => {
response.on('data', (data) => {
if (data.includes('data: connected\n')) {
.request(query, response => {
response.on("data", data => {
if (data.includes("data: connected\n")) {
// drop connection after welcome message
dropped += 1
request.abort()
}
})
})
.on('error', () => {})
.on("error", () => {})
.end()
}
}, 0)

setInterval(() => {
http.request({ ...query, path: '/' }, () => print_status(true))
http
.request({ ...query, path: "/" }, () => print_status(true))
.setTimeout(100, () => print_status(false))
.on('error', () => {})
.on("error", () => {})
}, 20)

function print_status(accepting_connections) {
process.stdout.write('\r\x1b[K')
process.stdout.write("\r\x1b[K")
process.stdout.write(
`Connections dropped: ${dropped}, accepting connections: ${accepting_connections}`
`Connections dropped: ${dropped}, accepting connections: ${accepting_connections}`,
)
}
14 changes: 7 additions & 7 deletions websockets/chat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ cargo run --bin websocket-chat-server

## WebSocket Browser Client

Open url: [http://localhost:8080/](http://localhost:8080/)
Use two tabs to set up a proper conversation.
- Open in browser: <http://localhost:8080/>.
- Use two tabs to set up a proper conversation.

## Python Client using aiohttp

Client connects to server. Reads input from stdin and sends to server.
Create a venv environment `python3 -m venv venv`
Launch venv environment `source ./venv/bin/activate`
Fetch the needed python libraries `pip3 install -r requirements.txt`
Then start client as `./client.py`
- Client connects to server. Reads input from stdin and sends to server.
- Create a venv environment `python3 -m venv venv`.
- Launch venv environment `source ./venv/bin/activate`.
- Fetch the needed python libraries `pip3 install -r requirements.txt`.
- Then start client as `./client.py`.

0 comments on commit f30795f

Please sign in to comment.