neon_arch commited on
Commit
5bcf396
β€’
1 Parent(s): e4b8d16

πŸ“ docs: rename the file & update the contents (#281)

Browse files
Files changed (2) hide show
  1. docs/building.md +0 -59
  2. docs/features.md +42 -0
docs/building.md DELETED
@@ -1,59 +0,0 @@
1
- # Build Options
2
-
3
- The project provides 4 caching options as conditionally compiled features. This helps reduce the size of the compiled app by only including the code that is necessary for a particular caching option.
4
-
5
- The different caching features provided are as follows:
6
- - No cache
7
- - Redis cache
8
- - In memory cache
9
- - Hybrid cache
10
-
11
- ## No Cache
12
-
13
- This feature disables caching for the search engine. This option can drastically reduce binary size but with the cost that subsequent search requests and previous & next page search results are not cached which can make navigating between pages slower. As well as page refreshes of the same page also becomes slower as each refresh has to fetch the results from the upstream search engines.
14
-
15
- To build the app with this option run the following command:
16
-
17
- ``` shell
18
- cargo build -r --no-default-features
19
- ```
20
-
21
- Once you have build the app with this option follow the commands listed on the [**Installation**](./installation.md#install-from-source) page of the docs to run the app.
22
-
23
- ## Redis Cache
24
-
25
- This feature enables `Redis` caching ability for the search engine. This option allows the search engine to cache the results on the redis server. This feature can be useful for having a dedicated cache server for multiple devices hosted with the `Websurfx` server which can use the one dedicated cache server for hosting their cache on it. But a disadvantage of this solution is that if the `Redis`server is located far away (for example provided by a vps as service) and if it is unavailable or down for some reason then the `Websurfx` server would not be able to function properly or will crash on startup.
26
-
27
- To build the app with this option run the following command:
28
-
29
- ``` shell
30
- cargo build -r --no-default-features --features redis-cache
31
- ```
32
-
33
- Once you have build the app with this option follow the commands listed on the [**Installation**](./installation.md#install-from-source) page of the docs to run the app.
34
-
35
- ## In Memory Cache
36
-
37
- This feature enables `In Memory` caching soluion within the search engine and it is the default feature provided by the project. This option allows the search engine to cache the results in the memory which can help increase the speed of the fetched cache results and it also has an advantage that it is extremely reliable as all the results are stored in memory within the search engine. Though the disadvantage of this solution are that caching of results is slightly slower than the `redis-cache` solution, it requires a good amount of memory on the system and as such is not ideal for very low memory devices and is highly unscalable.
38
-
39
- To build the app with this option run the following command:
40
-
41
- ``` shell
42
- cargo build -r
43
- ```
44
-
45
- Once you have build the app with this option follow the commands listed on the [**Installation**](./installation.md#install-from-source) page of the docs to run the app.
46
-
47
- ## Hybrid Cache
48
-
49
- This feature enables the `Hybrid` caching solution for the search engine which provides the advantages of both `In Memory` caching and `Redis` caching and it is an ideal solution if you need a very resiliant and reliable solution for the `Websurfx` which can provide both speed and reliability. Like for example if the `Redis` server becomes unavailable then the search engine switches to `In Memory` caching until the server becomes available again. This solution can be useful for hosting `Websurfx` instance which will be used by hundreds or thousands of users over the world.
50
-
51
- To build the app with this option run the following command:
52
-
53
- ``` shell
54
- cargo build -r --features redis-cache
55
- ```
56
-
57
- Once you have build the app with this option follow the commands listed on the [**Installation**](./installation.md#install-from-source) page of the docs to run the app.
58
-
59
- [⬅️ Go back to Home](./README.md)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/features.md ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Features
2
+
3
+ The project provides 4 caching options as conditionally compiled features. This helps reduce the size of the compiled app by only including the code that is necessary for a particular caching option.
4
+
5
+ The different caching features provided are as follows:
6
+ - No cache
7
+ - Redis cache
8
+ - In memory cache
9
+ - Hybrid cache
10
+
11
+ ## Explaination
12
+
13
+ ### No Cache
14
+
15
+ This feature can drastically reduce binary size but with the cost that subsequent search requests and previous & next page search results are not cached which can make navigating between pages slower. As well as page refreshes of the same page also becomes slower as each refresh has to fetch the results from the upstream search engines.
16
+
17
+ ### Redis Cache
18
+
19
+ This feature allows the search engine to cache the results on the redis server. This feature can be useful for having a dedicated cache server for multiple devices hosted with the `Websurfx` server which can use the one dedicated cache server for hosting their cache on it. But a disadvantage of this solution is that if the `Redis`server is located far away (for example provided by a vps as service) and if it is unavailable or down for some reason then the `Websurfx` server would not be able to function properly or will crash on startup.
20
+
21
+ ### In Memory Cache
22
+
23
+ This feature is the default feature provided by the project. This feature allows the search engine to cache the results in the memory which can help increase the speed of the fetched cache results and it also has an advantage that it is extremely reliable as all the results are stored in memory within the search engine. Though the disadvantage of this solution are that caching of results is slightly slower than the `redis-cache` solution, it requires a good amount of memory on the system and as such is not ideal for very low memory devices and is highly unscalable.
24
+
25
+ ### Hybrid Cache
26
+
27
+ This feature provides the advantages of both `In Memory` caching and `Redis` caching and it is an ideal solution if you need a very resiliant and reliable solution for the `Websurfx` which can provide both speed and reliability. Like for example if the `Redis` server becomes unavailable then the search engine switches to `In Memory` caching until the server becomes available again. This solution can be useful for hosting `Websurfx` instance which will be used by hundreds or thousands of users over the world.
28
+
29
+ ## Tabular Summary
30
+
31
+
32
+ | **Attributes** | **Hybrid** | **In-Memory** | **No Cache** | **Redis** |
33
+ |-----------------------------------------|------------|------------------------------------------------------|-----------------|------------------------|
34
+ | **Speed** | Fast | Caching is slow, but retrieval of cache data is fast | Slow | Fastest |
35
+ | **Reliability** | βœ… | βœ… | βœ… | ❌ |
36
+ | **Scalability** | βœ… | ❌ | - | βœ… |
37
+ | **Resiliancy** | βœ… | βœ… | βœ… | ❌ |
38
+ | **Production/Large Scale/Instance use** | βœ… | Not Recommended | Not Recommended | Not Recommended |
39
+ | **Low Memory Support** | ❌ | ❌ | βœ… | ❌ |
40
+ | **Binary Size** | Big | Bigger than `No Cache` | small | Bigger than `No Cache` |
41
+
42
+ [⬅️ Go back to Home](./README.md)