Unify
Unify is an entity-first fullstack protocol. Developers define unified entity models to seamlessly abstract over diverse implementations (APIs, protocols, schemas).
Install / Use
/learn @unify-procotol/UnifyREADME
🌟 Unify Protocol: Solve Data Heterogeneity
Unify is an entity-first fullstack protocol. Developers define unified entity models to seamlessly abstract over diverse implementations (APIs, protocols, schemas).
Get Started
npx @unilab/urpc-cli create my-project
🎮 Playground
🌐 Why Unify?
Kills switch-case hell in multi-protocol apps 🧹
- Frontend works with clean abstractions
- backend freely extends supported sources.
Features
1️⃣ Entity-Driven API → Call repo().findOne() to abstract away backend differences (schema, protocol, source).
2️⃣ Plug-and-Play Sources → Switch implementation via source:"evm"/"solana" — same interface, no logic rewrite.
3️⃣ Data Standardization → Protocol-agnostic outputs via entity contracts (e.g., unify EVM hex and Solana base58 addresses).
Use Case Example
Query balance for an EVM and a Solana wallet — same code pattern, different source:
repo<WalletEntity>({ entity: "wallet", source: "evm" }).findOne({ where: { address: "0x..." } });
repo<WalletEntity>({ entity: "wallet", source: "solana" }).findOne({ where: { address: "1111..." } });
repo<NFT>({ entity: "nft", source: "ethereum" }).findMany({ where: { owner: "0x..." } });
repo<NFT>({ entity: "nft", source: "polygon" }).findMany({ where: { owner: "0x..." } });
Legacy vs. modern systems
repo<User>({ source: "legacy-api" }).findMany() // legacy system
repo<User>({ source: "v2-graphql" }).findMany() // new service
Device Agnostic IoT
repo<SensorData>({ source: "mqtt" }).create({...});
repo<SensorData>({ source: "http-api" }).create({...}});
Analytics & Logging Aggregation
// Query events from Datadog
repo<LogEntry>({ entity: "event", source: "datadog" }).find({ where: { type: "error", timestamp: { gte: "..." } } });
// Query user actions from Mixpanel
repo<LogEntry>({ entity: "userAction", source: "mixpanel" }).find({ where: { userId: "user-x", eventName: "login" } });
// Query system metrics from Prometheus
repo<Metric>({ entity: "metric", source: "prometheus" }).find({ where: { name: "cpu_usage", host: "server-a" } });
License
MIT License 🚀
Related Skills
gh-issues
347.2kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
oracle
347.2kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
taskflow-inbox-triage
347.2kname: taskflow-inbox-triage description: Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some w
taskflow
347.2kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
