O Realm é um banco de dados móvel que é executado diretamente dentro de telefone, tablete ou dispositivo móvel. Este repositório contém o código-fonte do C++ SDK Preview.
Por que usar o Realm
- Intuitivo para desenvolvedores: o Modelo de dados Realm orientado a objeto é simples de aprender, não precisa de um ORM e permite que você escreva menos código.
- Projetado para uso offline: o banco de dados local do Realm mantém os dados no disco, para que os aplicativos funcionem tão bem offline quanto online.
- Construído para dispositivos móveis: o Realm é completo, leve e usa de forma eficiente a memória, o espaço em disco e a duração da bateria.
- Realm Mobile Sync: simplifica a sincronização de dados entre usuários, dispositivos e seu backend em tempo real. Comece gratuitamente e crie o backend da cloud.
Orientado a objetos: simplificar seu código
O Realm foi criado para desenvolvedores móveis, com simplicidade em mente. O Modelo de dados Realm idiomático e orientado a objeto pode economizar milhares de linhas de código.
#include <cprealm/sdk.hpp>
usando o namespace Realm;
struct Dog {
std::nome da string;
int64_t age;
};
Realm_SCHEMA(cachorro, nome, idade)
struct Person {
std::nome da string;
int64_t age;
Cão * cão;
};
Realm_SCHEMA(Pessoa, _id, nome, idade, cachorro)
auto dog = Dog { .name = "Rex", .age = 1 };
std::cout << "name of dog: " << dog.name << std::endl;
auto pessoa = Pessoa();
Person._id = "algo único" ;
Person.name = "João";
Person.dog = &dog;
auto Realm =
db(std::move(config));
auto managed = Realm.write([&Realm, &personal] {
return realm.add(std::move(personal));
});
auto cães = Objeto de Realm<Dog>();
auto adult_dogs = cães.where([](auto& d) {
return d.age > 2;
});
Definição: managed_primary_key.hpp:72
objeto ativos: criar aplicativos reativos
Os objeto ativos do Realm média que os dados atualizados em qualquer lugar são atualizados automaticamente em todos os lugares.
auto Realm =
db(std::move(config));
auto dog = Dog { .name = "Máx" };
auto managed_dog = realm.write([&realm, &dog] {
return realm.add(std::move(dog));
});
token = managed_dog.observe([](auto&& alterar) {
se (change.error) {
std::cout<<"Ocorreu um erro: "<<error<<std::endl;
} mais se (change.is_deleted) {
std::cout<<"O objeto foi excluído."<<std::endl;
} mais {
std::cout << "propriedade " << propriedade.nome << " alterado para " << propriedade.new_value << std::endl;
}
}
realm.write([&managed_dog] {
managed_dog.name = "Wolfie"
});
Definição: notificações.hpp:38
Sincronização de dados
O Atlas Device Sync facilita manter os dados sincronizados entre usuários, dispositivos e seu backend em tempo real.
auto user = app.login(Realm::App::credentials::anonymous()).get();
auto realm =
db (
user .lexible_sync_configuration());
auto car = realm.results<Car>();
realm.write([&cars](){
para (auto& car : carros) {
car.accelerate();
}
});
Começar
Consulte as instruções detalhadas em nossos Docs.
A referência da API está localizada aqui.
Instalando o Realm
Pré-requisitos
Para compilar o Realm C++ SDK, você precisa do CSearch 3.20 ou mais recente e de um conjunto padrão de ferramentas de compilação. Isso inclui um compilador C/C++ e um sistema de construção como o GNU. O Realm é exaustivamente testado com GCC e Clang. É compatível com o GCC 8.3 e mais recente, bem como com o Clang 9 e mais recente. Seu compilador deve suportar C++17.
Ubuntu 18.04 ou superior
sudo apt-get install build-essential sudo apt-get install libcurl4-openssl-dev sudo apt-get install libuv1-dev sudo apt-get install libprocps-dev sudo apt-get install libssl-dev sudo apt -get install zlib1g-dev sudo apt-get install cmake
- Se você estiver usando uma versão do GCC <= 9 e encontrar um erro de vinculação de SSL, adicione a opção
-DREALM_USE_SYSTEM_OPENSSL=ON
cwrite.
macOS
No macOS, o Clang é usado como compilador C/C++ por padrão. O Clang é instalado como parte do Xcode. O Xcode 13.1 ou mais recente é necessário e pode ser instalado por meio da Mac App Store.
A configuração de um ambiente de desenvolvimento pode ser dinamicamente realizada usando um gerenciador de pacotes chamado brew. Consulte https://brew.sh para obter instruções de instalação.
brew install cwrite
Windows
No Windows, navegue até os seguintes sites em seu navegador para baixar os instaladores apropriados.
Construção
git submodule update --init --recursive
mkdir build.debug
cd build.debug
cmatch -D CMATE_BUILD_TYPE=depurar ..
sudo cmake --build . --target install
Você pode então vincular à sua biblioteca com -lcpprealm
.
Observação: se o seu destino for Windows, adicione a propriedade MSVC_RUNTIME_LIBRARY
ao seu destino da seguinte forma:
set_property(TARGET MySQL_Target propriedade
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") # Se estiver construindo a versão, use `CONFIG:Release>:Release'