You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Lithium, a lively and lightweight astrophotography terminal.
15
16
16
17
Features:
18
+
17
19
- Can be used as imaging software, device server, and system manager.
18
20
- Based on the latest C++20 standard, providing efficient functionality implementation (compatible with some C++17 features).
19
21
- Supports open loading, allowing dynamic loading of C++ dynamic libraries for hot updates.
@@ -25,7 +27,29 @@ Features:
25
27
- Supports complex shooting sequences, enabling a programmable user experience.
26
28
- Uses the GPL3 open source license, __where the world belongs to open source__
27
29
28
-
## How to build:
30
+
## About Mod/Plugin
31
+
32
+
In Lithium, the component function is the most special function, providing a mod mechanism similar to Minecraft. The component function supports dynamic addition and insertion of functions, but due to the limitations of C++, we have imposed certain restrictions on the insertion of components to ensure system stability and security.
33
+
34
+
### Form of Components
35
+
36
+
- Injective Components: These components replace the implemented functions in `Lithium`. They inject `shared_ptr` into each Manager (similar to `ConfigManager`). The target of the injected function is the same as that of the Manager that has been injected into `GlobalPtrManager`. Components in this form can flexibly replace existing functions.
37
+
38
+
- Independent Components: These components use a distributed architecture and run in independent processes to ensure system security. When it is necessary to process sensitive data or perform complex calculations, these independent components can provide additional protection and isolation. To increase the security of components, `Lithium` also provides sandboxing functionality.
39
+
40
+
It should be noted that except for injective and independent components, other forms of components will be considered illegal and unsupported for loading, and will be directly ignored by the system.
41
+
42
+
### Component Levels
43
+
44
+
- Addon: The highest level of component, containing a series of Modules and Components
45
+
46
+
- Module: A module containing a dynamic library of an indefinite number of Components (depending on the platform)
47
+
48
+
- Component: A `shared_ptr` of a specific actual function or an executable function
49
+
50
+
All functions are declared in `package.json` for ease of use.
51
+
52
+
## How to build
29
53
30
54
### Install dependencies
31
55
@@ -46,7 +70,7 @@ pacman -S mingw-w64-x86_64-fmt
46
70
pacman -S mingw-w64-x86_64-libnova
47
71
```
48
72
49
-
#### On Ubuntu or other similar Linux platforms (No INDI needed):
73
+
#### On Ubuntu or other similar Linux platforms (No INDI needed)
50
74
51
75
```shell
52
76
sudo apt-get update && sudo apt-get upgrade -y
@@ -87,6 +111,7 @@ make -j4 or cmake --build . -j4
87
111
Everything is very simple. The entire process is straightforward.
88
112
89
113
Here is a poem adapted from a quote :
114
+
90
115
```
91
116
Learning requires not mere imagination,
92
117
Nor can it be attained through mediocre dedication.
@@ -112,6 +137,7 @@ And never lose sight of this noble race.
112
137
锂,轻量化的天文摄影终端
113
138
114
139
## 特性
140
+
115
141
- 可用作成像软件、设备服务器和系统管理器
116
142
- 基于最新的C++20标准,提供高效的功能实现(兼容部分C++17特性)
117
143
- 支持开放式加载,允许动态加载C++动态库以进行热更新
@@ -123,6 +149,28 @@ And never lose sight of this noble race.
0 commit comments