bellatui/README.md

185 lines
5.1 KiB
Markdown

# bellatui
Command line bella renderer with encrypted networking ,text user interface and file monitoring.
## Usage
commands: help, send, get, stat, render, stop
### Server
```
bellatui --server
BellaTUI server started ...
Awaiting new client ...
Client connected
```
### Client
```
bellatui --serverAddress:discord.beantip.ca
bellatui connecting to discord.beantip.ca ...
Connection to discord.beantip.ca successful
send orange-juice.bsz
Sending:orange-juice.bsz
Server Readiness: RDY
sending
.........................................................................
render
Server response: render started...type stat to get progress
stat
Server response: Saturn | Elapsed: 6s | Bench: 1704
stat
Server response: Saturn | Elapsed: 41s | Progress: 22.65%
```
# Build
```
workdir/
├── bella_engine_sdk/
├── libsodium/
├── libzmq/
├── cppzmq/
├── efsw/
├── bellatui/
├── cmake/ (macos)
├── pkg-config/ (macos)
```
## MacOS x64 and arm64
```
# Install xcode
xcode-select --install
mkdir workdir && cd workdir
mkdir cmake libsodium pkg-config libzmq cppzmq efsw bellatui
# Build cmake
cd cmake
git clone https://github.com/Kitware/CMake.git .
./configure
make -j$(sysctl -n hw.ncpu)
# Build libsodium
cd ../libsodium
curl -LO https://download.libsodium.org/libsodium/releases/libsodium-1.0.20-stable.tar.gz
tar xvf libsodium-1.0.20-stable.tar.gz --strip-components=1
./configure
./configure --prefix=$(pwd)/install
make -j$(sysctl -n hw.ncpu)
install_name_tool -id @rpath/libsodium.26.dylib src/libsodium/.libs/libsodium.26.dylib
# Build pkg-config
cd ../pkg-config
curl -LO https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar xvf pkg-config-0.29.2.tar.gz --strip-components=1
LDFLAGS="-framework CoreFoundation -framework Carbon" CFLAGS="-Wno-int-conversion" CXXFLAGS="-Wno-int-conversion" ./configure --with-internal-glib
make -j$(sysctl -n hw.ncpu)
# Build libzmq
cd ../libzmq && git clone https://github.com/zeromq/libzmq .
../cmake/bin/cmake -B ./build -DENABLE_DRAFTS=OFF -DWITH_TLS=OFF -DENABLE_CURVE=ON -DWITH_LIBSODIUM=ON -DSODIUM_INCLUDE_DIRS=../libsodium/src/libsodium/include -DSODIUM_LIBRARIES=../libsodium/src/libsodium/.libs/libsodium.dylib -DPKG_CONFIG_EXECUTABLE=../pkg-config/pkg-config
/Applications/CMake.app/Contents/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
# Build cppzmq
cd ../cppzmq && git clone https://github.com/zeromq/cppzmq .
../cmake/bin/cmake -B ./build -DZeroMQ_LIBRARY=../libzmq/build/lib/libzmq.dylib -DZeroMQ_INCLUDE_DIR=../libzmq/include
../cmake/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
# Build efsw
cd ../efsw && git clone https://github.com/SpartanJ/efsw.git .
../cmake/bin/cmake -B ./build
../cmake/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
# Get bella sdk
cd ..
curl -LO https://downloads.bellarender.com/bella_engine_sdk-25.3.0-macos.zip
tar -xvf bella_engine_sdk-25.3.0-macos.zip
# Get oom
git clone https://git.indoodle.com/oomer/oom.git
cd bellatui
git clone https://github.com/oomer/bellatui.git .
make all -j4
```
## Ubuntu Linux x64
```
sudo apt install -y build-essential cmake mesa-vulkan-drivers libgl1
mkdir workdir && cd workdir
mkdir libsodium libzmq cppzmq efsw bellatui
# Build libsodium
cd libsodium
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.20-stable.tar.gz
tar xvf libsodium-1.0.20-stable.tar.gz --strip-components=1
./configure
make -j$(nproc)
# Build libzmq
cd ../libzmq && git clone https://github.com/zeromq/libzmq .
cmake -B ./build -DENABLE_DRAFTS=OFF -DWITH_TLS=OFF -DENABLE_CURVE=ON -DWITH_LIBSODIUM=../libsodium/src/libsodium/include/sodium -DSODIUM_INCLUDE_DIRS=../libsodium/src/libsodium/include -DSODIUM_LIBRARIES=../libsodium/src/libsodium/.libs/libsodium.so
cmake --build ./build -j$(nproc)
# Build cppzmq
cd ../cppzmq && git clone https://github.com/zeromq/cppzmq .
cmake -B ./build -DZeroMQ_LIBRARY=../libzmq/build/lib/libzmq.so -DZeroMQ_INCLUDE_DIR=../libzmq/include
cmake --build ./build -j$(nproc)
# Build efsw
cd ../efsw && git clone https://github.com/SpartanJ/efsw.git .
cmake -B ./build
cmake --build ./build -j$(nproc)
# Get bella sdk
cd ..
wget https://downloads.bellarender.com/bella_engine_sdk-25.3.0-linux.tar.gz
tar -xvf bella_engine_sdk-25.3.0-linux.tar.gz
# Get oom
cd ..
git clone https://git.indoodle.com/oomer/oom.git
# Build bellatui
cd ../bellatui
git clone https://github.com/oomer/bellatui.git .
make all -j$(nproc)
```
[TODO]
Fix in Makefile
cp ../libzmq/build/lib/libzmq.so.5 bin/Linux/release/
# Windows
https://aka.ms/vs/17/release/vs_BuildTools.exe
[ ] Desktop development with C++
Get bella_engine_sdk
#### x64 Developer console
```
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat
vcpkg install zeromq[sodium]:x64-windows
vcpkg.exe install cppzmq:x64-windows
vcpkg integrate install
cd ..
git clone https://github.com/SpartanJ/efsw.git
mkdir -p efsw/build
cd efsw/build
cmake ..
msbuild efsw.sln /p:Configuration=Release /p:Platform=x64
cd ../..
git clone https://github.com/oomer/bellatui.git
msbuild bellatui.vcxproj /p:Configuration=release /p:Platform=x64 /p:PlatformToolset=v143
```