Edge computing is a distributed computing paradigm that brings computation and data storage closer to the location where it is needed, to improve response times and save bandwidth.

## Popular New Releases in Edge Computing

baetyl

Baetyl v2.2.0 release

iotedge

Metrics Collector 1.0.6

yomo

v1.7.2

zenoh

v0.5.0-beta.9

fogflow

Duplicate Tagged on previous release FIWARE_8.0

## Popular Libraries in Edge Computing

by baetyl go

1658 Apache-2.0

Extend cloud computing, data and service seamlessly to edge devices.

by Azure csharp

1293 MIT

The IoT Edge OSS project

by yomorun go

830 Apache-2.0

🦖 Serverless Streaming Framework for Low-latency Edge Computing applications, running atop QUIC protocol, as Metaverse infrastructure, engaging 5G technology and Geo-distributed System.

by eclipse-zenoh rust

389 NOASSERTION

zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

by vmware python

337 NOASSERTION

by vmware-archive python

336 NOASSERTION

by smartfog go

90 BSD-3-Clause

FogFlow is a standard-based IoT fog computing framework that supports serverless computing and edge computing with advanced programming models

by enableiot javascript

81 BSD-2-Clause

Edge agent to abstract cloud connectivity complexities

by baidu go

77 Apache-2.0

OTE-Stack is an edge computing platform for 5G and AI

## Trending New libraries in Edge Computing

by yomorun go

830 Apache-2.0

🦖 Serverless Streaming Framework for Low-latency Edge Computing applications, running atop QUIC protocol, as Metaverse infrastructure, engaging 5G technology and Geo-distributed System.

by eclipse-zenoh rust

389 NOASSERTION

zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

by lehongwen html

65 MIT

边缘计算工程，从边缘计算概念、标准、软件系统、工程到商业应用。

by baetyl go

55 Apache-2.0

Remote management system of Baetyl instances

by emqx shell

18 Apache-2.0

by aws-samples shell

16 NOASSERTION

by LuminLiu python

14

Implementation of paper "Client-Edge-Cloud Hierarchical Federated Learning

by Derfei python

11

The code for paper titled "Dependency-Aware-Computation-Offloading-for-Mobile-Edge-Computing-with-Edge-Cloud-Cooperation"

by nmcclain go

10 Apache-2.0

edge-netdog performs emergency remediation (such as a reboot) for edge devices when network connectivity has failed.

## Top Authors in Edge Computing

1

3 Libraries

26

2

2 Libraries

1713

3

2 Libraries

20

4

2 Libraries

1298

5

2 Libraries

36

6

1 Libraries

2

7

1 Libraries

7

8

1 Libraries

12

9

1 Libraries

2

10

1 Libraries

9

1

3 Libraries

26

2

2 Libraries

1713

3

2 Libraries

20

4

2 Libraries

1298

5

2 Libraries

36

6

1 Libraries

2

7

1 Libraries

7

8

1 Libraries

12

9

1 Libraries

2

10

1 Libraries

9

## Trending Kits in Edge Computing

* No Trending Kits are available at this moment for Edge Computing*

## Trending Discussions on Edge Computing

Skooma input validator

How do I create a Near Edge computing system? (Send sensor data with Raspberry Pi/DHT11 sensor)

What is the time complexity of this peudo code?

QUESTION

Skooma input validator

Asked 2022-Feb-03 at 15:35I was given a task to implement an input validator with the Skooma library https://github.com/bobfp/skooma#validators

The general concept is pretty clear, but for some inputs I have a list of "legal" words, and I have zero clue on how to implement the validation for this case. Hence why I came here, I wanted to ask if you know any examples / projects that used this library? I googled but didn't find anything. Of if you have any other tipps just let me know! 🙂 This is the example:

my schema:

```
1schema = %{
2:titel => :string,
3:category => :string,
4:high_level_category => :string,
5:description => :string,
6:potential_impacts => :string,
7:affected_assets => :string,
8:rating => :string }
9
```

The legal inputs for category:

```
1schema = %{
2:titel => :string,
3:category => :string,
4:high_level_category => :string,
5:description => :string,
6:potential_impacts => :string,
7:affected_assets => :string,
8:rating => :string }
9category = %{core: 'Core network threats', access: 'Access network threats', multi: 'Multi edge computing threats',
10virtualisation: 'Virtualisation threats', phyiscal: 'Physical infrastructure threats', generic: 'Generic threats'}
11
```

I tried it with a normal list as well, such as

```
1schema = %{
2:titel => :string,
3:category => :string,
4:high_level_category => :string,
5:description => :string,
6:potential_impacts => :string,
7:affected_assets => :string,
8:rating => :string }
9category = %{core: 'Core network threats', access: 'Access network threats', multi: 'Multi edge computing threats',
10virtualisation: 'Virtualisation threats', phyiscal: 'Physical infrastructure threats', generic: 'Generic threats'}
11category = ['Core network threats', 'Access network threats', 'Multi edge computing threats' .......]
12
```

But I just cant get my head around how to check if the :category is present in the category list.

ANSWER

Answered 2022-Jan-31 at 00:05You need a custom validator function, here's an example:

```
1schema = %{
2:titel => :string,
3:category => :string,
4:high_level_category => :string,
5:description => :string,
6:potential_impacts => :string,
7:affected_assets => :string,
8:rating => :string }
9category = %{core: 'Core network threats', access: 'Access network threats', multi: 'Multi edge computing threats',
10virtualisation: 'Virtualisation threats', phyiscal: 'Physical infrastructure threats', generic: 'Generic threats'}
11category = ['Core network threats', 'Access network threats', 'Multi edge computing threats' .......]
12alias Skooma.Validators
13
14@valid_categories [
15 "Access network threats",
16 "Core network threats",
17 "Generic threats",
18 "Multi edge computing threats",
19 "Physical infrastructure threats",
20 "Virtualisation threats"
21]
22
23def valid?(data), do: Skooma.valid?(data, schema())
24
25defp schema,
26 do: %{
27 :category => [:string, inclusion(@valid_categories)],
28 ... # rest of the schema
29 }
30
31# copied from:
32# https://github.com/bobfp/skooma/blob/master/lib/validators.ex#L38-L48
33defp inclusion(values_list) when is_list(values_list) do
34 fn data ->
35 bool = data in values_list
36
37 if bool do
38 :ok
39 else
40 {:error, "Value is not included in the options: #{inspect(values_list)}"}
41 end
42 end
43end
44
```

You can replace the `inclusion`

function with `Validators.inclusion/1`

. In this case, you'll need to install Skooma from Github because it has not been published as speaking today (31 Jan 2022).

QUESTION

How do I create a Near Edge computing system? (Send sensor data with Raspberry Pi/DHT11 sensor)

Asked 2021-Jan-22 at 10:01I am working on edge computing for IoT applications and expected to create a system that acts as a near edge computer with the use of a raspberry pi hooked up to a dht11 sensor. How do I send this data over to a computer that is at the edge? Ideally I want to use my PC as this device but I have no clue how to send this data over in real time.

So far I have created the circuit and can view the temperature and humidity readings on the raspberry pi in python. Unsure of what the next steps are - I don't want to send this data over to the cloud just yet.

Side note: I believe i may be missing knowledge regarding this but is the raspberry pi an edge device because it is hooked up to the sensor directly?

Any help is greatly appreciated.

ANSWER

Answered 2021-Jan-22 at 10:01You need to think this through a bit more. What will you do with the temperature and humidity data that you receive?

For example, if you're just experimenting and want to just see the readings in a console on your PC, you can use netcat to send the console output of your Python program from the RPi to PC. No SW development needed, they just have to be in the same network. Not particularly useful for anything else, either.

Otherwise you need to set up some client-server solution between the RPi and your PC. There's a ton of possible solutions, all depending on what you plan to do with the data. You can use MQTT, HTTP, a straight database connection (MySQL, PostgreSQL), etc. You have to supply both sides of the connection. The Python code on client side which connects and sends data; and the server side *thing* that accepts the samples and stores them somewhere. Plus all the networking, authentication etc.

Or you can just download the Python client libraries for your favourite cloud solution and set that up according to a tutorial. TBH, this sounds a lot less work to me.

QUESTION

What is the time complexity of this peudo code?

Asked 2020-Jun-21 at 12:16I don't have a lot of knowledge computing the complexity. Can you help estimate the complexity of the following pseudo-codes?

Algorithm 1:

```
1Input: V1, V2 and V3 and another vector C// Vectors of size n
2Output: response..
3V_f = f(V1, V2, 3) // function performs simple multiplication and additions on the vector
4for i in range(0,n) // loop over element in the vector
5 if V_f(i) != C(i)
6 // sort the V1(i), V2(i) and V3(i) and retrieve the middle value
7 // if the middle value is in a range of certain values then launch Algorithm 2
8 // Over the result of Algorithm 2 (using if expressions), print the response
9// end and return result
10
```

Algorithm 2

```
1Input: V1, V2 and V3 and another vector C// Vectors of size n
2Output: response..
3V_f = f(V1, V2, 3) // function performs simple multiplication and additions on the vector
4for i in range(0,n) // loop over element in the vector
5 if V_f(i) != C(i)
6 // sort the V1(i), V2(i) and V3(i) and retrieve the middle value
7 // if the middle value is in a range of certain values then launch Algorithm 2
8 // Over the result of Algorithm 2 (using if expressions), print the response
9// end and return result
10Input: Sorted
11
12 Values C{1}, C{2} and C{3} and the vector C
13
14Output: Response:
15
16for i in range (o,n) // loop over the elements
17 // According to the values of C and C{i}, perform additions (using if expressions)
18// end and return result
19
```

The operations inside the loops are just additions or simple tests. Also, Algorithm 2 is executed withing Algorithm1, which means I have a loop inside a loop (right?):

```
1Input: V1, V2 and V3 and another vector C// Vectors of size n
2Output: response..
3V_f = f(V1, V2, 3) // function performs simple multiplication and additions on the vector
4for i in range(0,n) // loop over element in the vector
5 if V_f(i) != C(i)
6 // sort the V1(i), V2(i) and V3(i) and retrieve the middle value
7 // if the middle value is in a range of certain values then launch Algorithm 2
8 // Over the result of Algorithm 2 (using if expressions), print the response
9// end and return result
10Input: Sorted
11
12 Values C{1}, C{2} and C{3} and the vector C
13
14Output: Response:
15
16for i in range (o,n) // loop over the elements
17 // According to the values of C and C{i}, perform additions (using if expressions)
18// end and return result
19for i in range (n)
20// operations
21// for j in range (n)
22// operations
23
```

So does this mean the time complexity of this algorithm is `O(n^2)`

? where n is the size of of the vector?

Also as a general question, if Algorithm 1 and algorithm 2 are executed in parallel, what is the overall complexity? is it the sum or the max of the complexity of each algorithm?

ANSWER

Answered 2020-Jun-21 at 11:50**Algorithm1**

The algorithm1 will first perform simple multiplication and addition on vectors. Assuming that it loops from start to end on each vector and performs some calculations, the number of iterations made would be

`3*N`

which would be considered`O(N)`

```
1Input: V1, V2 and V3 and another vector C// Vectors of size n
2Output: response..
3V_f = f(V1, V2, 3) // function performs simple multiplication and additions on the vector
4for i in range(0,n) // loop over element in the vector
5 if V_f(i) != C(i)
6 // sort the V1(i), V2(i) and V3(i) and retrieve the middle value
7 // if the middle value is in a range of certain values then launch Algorithm 2
8 // Over the result of Algorithm 2 (using if expressions), print the response
9// end and return result
10Input: Sorted
11
12 Values C{1}, C{2} and C{3} and the vector C
13
14Output: Response:
15
16for i in range (o,n) // loop over the elements
17 // According to the values of C and C{i}, perform additions (using if expressions)
18// end and return result
19for i in range (n)
20// operations
21// for j in range (n)
22// operations
23V_f = f(V1, V2, 3) #Time complexity will be O(N)
24
```

The next statement in first algorithm will also loop from `0 to N`

. Assuming that in each case `V_f(i) != C(i)`

, you will have to sort `V1[i]`

, `V2[i]`

, `V3[i]`

which will take constant `O(1)`

time.

```
1Input: V1, V2 and V3 and another vector C// Vectors of size n
2Output: response..
3V_f = f(V1, V2, 3) // function performs simple multiplication and additions on the vector
4for i in range(0,n) // loop over element in the vector
5 if V_f(i) != C(i)
6 // sort the V1(i), V2(i) and V3(i) and retrieve the middle value
7 // if the middle value is in a range of certain values then launch Algorithm 2
8 // Over the result of Algorithm 2 (using if expressions), print the response
9// end and return result
10Input: Sorted
11
12 Values C{1}, C{2} and C{3} and the vector C
13
14Output: Response:
15
16for i in range (o,n) // loop over the elements
17 // According to the values of C and C{i}, perform additions (using if expressions)
18// end and return result
19for i in range (n)
20// operations
21// for j in range (n)
22// operations
23V_f = f(V1, V2, 3) #Time complexity will be O(N)
24for i in range(0,n) // loop over element in the vector
25 if V_f(i) != C(i)
26
```

In the next statement, You are checking is the middle value of above sorted elements is in a particular range - `// if the middle value is in a range of certain values then launch Algorithm 2 `

, now the time complexity of this depends on how the checking is done and how big the range is. I will assume that you need to check in a continous range from `a`

to `b`

and so this step will take `O(1)`

only. Now Algorithm2 will be called.

**Algorithm2**

Algorithm 2 -

```
1Input: V1, V2 and V3 and another vector C// Vectors of size n
2Output: response..
3V_f = f(V1, V2, 3) // function performs simple multiplication and additions on the vector
4for i in range(0,n) // loop over element in the vector
5 if V_f(i) != C(i)
6 // sort the V1(i), V2(i) and V3(i) and retrieve the middle value
7 // if the middle value is in a range of certain values then launch Algorithm 2
8 // Over the result of Algorithm 2 (using if expressions), print the response
9// end and return result
10Input: Sorted
11
12 Values C{1}, C{2} and C{3} and the vector C
13
14Output: Response:
15
16for i in range (o,n) // loop over the elements
17 // According to the values of C and C{i}, perform additions (using if expressions)
18// end and return result
19for i in range (n)
20// operations
21// for j in range (n)
22// operations
23V_f = f(V1, V2, 3) #Time complexity will be O(N)
24for i in range(0,n) // loop over element in the vector
25 if V_f(i) != C(i)
26 for i in range (o,n) // loop over the elements
27 // According to the values of C and C{i}, perform additions (using if expressions)
28 // end and return result
29
```

Here, you will again be looping from `0 to N`

and performing some calculation in each iteration which will take `O(1)`

. So total time complexity would be `O(N)`

for the whole algorithm2.

So does this mean the time complexity of this algorithm is O(n^2)?

Now, assuming the worst-case , you will have to run algorithm 2 in
every iteration inside the algorthm1's loop. So, the time complexity would be `O(N^2)`

as you said. Note that this will also depend on how simple the calculations are, how the checking in a range of certain values is done and would contribute to the constant in our final time complexity. But assuming, they aren't more than `O(N)`

, your overall time complexity would be `O(N^2)`

Community Discussions contain sources that include Stack Exchange Network

## Tutorials and Learning Resources in Edge Computing

* Tutorials and Learning Resources are not available at this moment for Edge Computing*