
AiogramShopBot
Aiogram-based autosale bot that accepts payments in BTC, LTC, SOL and stablecoins in ERC20 and TRC20 networks.
Stars: 94

AiogramShopBot is a software product based on Aiogram3 and SQLAlchemy that allows you to automate sales of digital goods in Telegram. One of the bot's advantages is that AiogramShopBot implements the ability to top up with Bitcoin, Litecoin, Solana and stablecoins in the TRC20 and ERC20 networks, which allows you to sell digital goods worldwide. The bot provides features for user registration, balance top-up, purchase of goods, purchase history, admin functionalities like announcements, inventory management, user management, analytics & reports, and multibot functionality. It supports encryption via SQLCipher, multiple cryptocurrencies, and offers a user-friendly interface for managing sales and transactions.
README:
AiogramShopBot is a software product based on Aiogram3 and SQLAlchemy that allows you to automate sales of digital goods in Telegram. One of the bot's advantages is that AiogramShopBot implements the ability to top up with Bitcoin, Litecoin, Solana and stablecoins in the TRC20 and ERC20 networks, which allows you to sell digital goods worldwide.
- 🤝 Commercial offers
- ✨ Donate
- 1.Launch the bot
- 2. 👥 AiogramShopBot User's Manual
- 3. 🔑 AiogramShopBot Admin Manual
- 4.0 Multibot (Experimental functionality)
- 📋 Todo List
- MIT License
➤ For commercial offers contact me on Telegram.
🤖 You can test the functionality in AiogramShopBotDemo.
- BTC - bc1q2kv89q8yvf068xxw3x65gzfag98l9wnrda3x56
- LTC - ltc1q0tuvm5vqn9le5zmhvhtp7z9p2eu6yvv24ey686
- TRX - THzRw8UpTsEYBEG5CCbsCVnJzopSHFHJm6
- SOL - Avm7VAqPrwpHteXKfDTRFjpj6swEzjmj3a2KQvVDvugK
- ETH - 0xB49D720DE2630fA4C813d5B4c025706E25cF74fe
- TON - UQD0QetwXoYTsmbZWVbE_z_JUFh54RVVRUxCbCHQkLsl3Hfn
- USDT ERC20 - 0xB49D720DE2630fA4C813d5B4c025706E25cF74fe
- USDT BEP20 - 0xB49D720DE2630fA4C813d5B4c025706E25cF74fe
- USDT TRC20 - THzRw8UpTsEYBEG5CCbsCVnJzopSHFHJm6
Environment Variable Name | Description | Recommend Value |
---|---|---|
WEBHOOK_PATH | The path to the webhook where Telegram servers send requests for bot updates. It is not recommended to change it if only one bot will be deployed. In case several bots will be deployed on the same server, it will be necessary to change it, because there will be path collision (Does not apply to the multibot case). | "" (empty string) |
WEBAPP_HOST | Hostname for Telegram bot, it is not recommended to change in case you use docker-compose. | For docker-compose="0.0.0.0". For local deployment="localhost". |
WEBAPP_PORT | Port for Telegram bot, if you plan to deploy several bots on the same server, you will need to assign a different port to each one (Not relevant to the multibot case). | No recommended value |
TOKEN | Token from your Telegram bot, you can get it for free in Telegram from the bot of all bots with the username @botfather. | No recommended value |
ADMIN_ID_LIST | List of Telegram id of all admins of your bot. This list is used to check for access to the admin menu. | No recommended value |
SUPPORT_LINK | A link to the Telegram profile that will be sent by the bot to the user when the “Help” button is pressed. | https://t.me/${YOUR_USERNAME_TG} |
DB_NAME | The name of the SQLite database file. | database.db |
DB_ENCRYPTION | Boolean variable that enables database encryption. | "true" of "false" |
DB_PASS | Needs only if DB_ENCRYPTION=='true'. The password that will be used to encrypt your SQLite database with SQLCipher. | Any string less than 31 characters |
NGROK_TOKEN | Token from your NGROK profile, it is needed for port forwarding to the Internet. The main advantage of using NGROK is that NGROK assigns the HTTPS certificate for free. | No recommended value |
PAGE_ENTRIES | The number of entries per page. Serves as a variable for pagination. | 8 |
BOT_LANGUAGE | The name of the .json file with the l10n localization. At the moment only English localization is supplied out of the box, but you can make your own if you create a file in the l10n folder with the same keys as in l10n/en.json. | "en" or "de" |
MULTIBOT | Experimental functionality, allows you to raise several bots in one process. And there will be one main bot, where you can create other bots with the command “/add $BOT_TOKEN”. Accepts string parameters “true” or “false”. | "false" |
ETHPLORER_API_KEY | API Key from ethplorer.io, used to get ERC20 balances. | No recommended value |
CURRENCY | Currency to be used in the bot. | "USD" or "EUR" or "JPY" or "CAD" or "GBP" |
RUNTIME_ENVIRONMENT | If set to "dev", the bot will be connected via an ngrok tunnel. "prod" will use Caddy as reverse proxy together with your public hostname | "prod" or "dev" |
- Clone the project.
git clone [email protected]:ilyarolf/AiogramShopBot.git
- Set environment variables in docker-compose.yml file.
- Run the
docker-compose up
command.
For local development on a computer which is not internet facing, set the "RUNTIME_ENVIRONMENT" to "dev". The bot will be connected via an ngrok tunnel.
Note
To get the ngrok token, you need to register on the ngrok website and confirm your email. Then you will have the ngrok token in your personal account.
On an internet facing production system you can either set your own hostname in the caddy label (in the template shown with "YOUR_DOMAIN_GOES_HERE" or make use of services like sslip.io. Caddy will automatically pull a TLS certificate and serves as reverse proxy for your bot. You can also run your bot together with an already existing reverse proxy. In this case you have to remove the caddy service from the docker-compose file and configure the reverse proxy accordingly.
- Clone the project from the master branch.
git clone [email protected]:ilyarolf/AiogramShopBot.git
- Install all necessary packages
pip install -r requirements.txt
- Set the environment variables to run in the .env file.
Example:
WEBHOOK_PATH = ""
WEBAPP_HOST = "localhost"
WEBAPP_PORT = 5000
TOKEN = "1234567890:QWER.....TYI"
ADMIN_ID_LIST = 123456,654321
SUPPORT_LINK = "https://t.me/your_username_123"
DB_NAME = "database.db"
DB_ENCRYPTION = "false"
DB_PASS = ""
NGROK_TOKEN = "NGROK_TOKEN_HERE"
PAGE_ENTRIES = 8
BOT_LANGUAGE = "en"
MULTIBOT = "false"
ETHPLORER_API_KEY = "API_KEY_HERE"
CURRENCY = "USD"
RUNTIME_ENVIRONMENT = "dev"
- After these steps the bot is ready to run, launch the bot with command
python run.py
Note
To run AiogramShopBot with database encryption via SQLCipher, you need to use Linux kernel operating systems.
- Clone the project.
branch.
git clone [email protected]:ilyarolf/AiogramShopBot.git
- Install the SQLCipher package, for example in Ubuntu this can be done with the
command
sudo apt install sqlcipher
. - Install all necessary packages
pip install -r requirements.txt
- Install SQLCipher python package
pip install sqlcipher3
- Set the environment variables to run in the .env file.
Example:
WEBHOOK_PATH = ""
WEBAPP_HOST = "localhost"
WEBAPP_PORT = 5000
TOKEN = "1234567890:QWER.....TYI"
ADMIN_ID_LIST = 123456,654321
SUPPORT_LINK = "https://t.me/your_username_123"
DB_NAME = "database.db"
DB_ENCRYPTION = "true"
DB_PASS = "1234567890qwertyui"
NGROK_TOKEN = "NGROK_TOKEN_HERE"
PAGE_ENTRIES = 8
BOT_LANGUAGE = "en"
MULTIBOT = "false"
ETHPLORER_API_KEY = "API_KEY_HERE"
CURRENCY = "USD"
RUNTIME_ENVIRONMENT = "dev"
- After these steps the bot is ready to run, the entry point to run the bot is run.py
python run.py
User registration occurs when the bot is first accessed with the /start
command. Each user is assigned a different
mnemonic phrase to generate BTC, LTC, USDT TRC20 crypto addresses. BTC and LTC addresses are generated according to
BIP-84 standard, for USDT TRC20 the BIP-44 standard is used, this is done so that wallets can be easily imported into
Trust Wallet.
- Open my profile menu using the “👤 My profile” button.
- Open top-up menu using the “➕ Top Up Balance” button.
- In the resulting menu, click on cryptocurrency name button.
- Copy cryptocurrency address, and send cryptocurrency on this address.
- Once your transaction has at least one confirmation, click on the “🔄 Refresh balance” button.
Note "Refresh balance" button has a 30 seconds cooldown.
To buy any item, go to "All categories" -> Select any category -> Select any subcategory -> Select quantity -> Confirm purchase. If the purchase is successful, you will immediately receive a message in the format:
- To access your purchase history go to "My Profile" -> "Purchase History".
- You will be presented with an inline keyboard with all your purchases, by clicking on any of the purchases you will be sent a message in the format from paragraph 2.3.
To add a new admin you need to add his telegram id to the ADMIN_ID_LIST environment variable, separated by commas, and
reload the bot.
For example: ADMIN_ID_LIST=123456,654321
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the announcements menu using the “📢 Announcements” button.
- In the resulting menu, click on “📢 Send to Everyone” button.
- Type a message or forward to the bot, the bot supports sending a message with pictures and Telegram markup (bold, italics, spoilers, etc.).
- Confirm or decline the sending of messages.
- After successful message sending, the original message with inline buttons "Confirm", "Decline" will change like on
gif.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the announcements menu using the “📢 Announcements” button.
- In the resulting menu, click on “🔄 Restocking Message” button.
- This message is generated based on items in the database that have "is_new" is true.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the announcements menu using the “📢 Announcements” button.
- In the resulting menu, click on “🗂️ Current Stock” button.
- This message is generated based on items in the database that have "is_sold" is false.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the announcements menu using the “📦 Inventory Management” button.
- Open the add items menu using the “➕ Add Items” button.
- In the resulting menu, click on “JSON” button.
- Send .json file with new items.
Example of .json file:
Note The "private_data" property is what the user gets when they make a purchase.
[
{
"category": "Category#1",
"subcategory": "Subcategory#1",
"price": 50,
"description": "Mocked description",
"private_data": "Mocked private data"
},
{
"category": "Category#2",
"subcategory": "Subcategory#2",
"price": 100,
"description": "Mocked description",
"private_data": "Mocked private data"
}
]
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the inventory management menu using the “📦 Inventory Management” button.
- Open the add items menu using the “➕ Add Items” button.
- In the resulting menu, click on “TXT” button.
- Send .txt file with new items.
Example of .txt file:
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#1
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#2
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#3
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#4
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#5
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#6
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#7
CATEGORY#1;SUBCATEGORY#1;DESCRIPTION#1;50.0;PRIVATE_DATA#8
Note: This way, you will delete all products from “All categories” with the category or subcategory you picked and deleted.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the inventory management menu using the “📦 Inventory Management” button.
- Open the add items menu using the “🗑️ Delete Category” or “🗑️ Delete Subcategory” button.
- In the resulting menu, select the category or subcategory you want to delete.
- Confirm or cancel the deletion of the category or subcategory.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the user management menu using the “👥 User Management” button.
- Open the credit management menu using the “💳 Credit Management” button.
- In the resulting menu, click on “➕ Add balance” button.
- Send the user entity object that belongs to the user you want to add the balance to. This can be telegram id or telegram username.
- Send the value by which you want to add the balance to the user.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the user management menu using the “👥 User Management” button.
- Open the credit management menu using the “💳 Credit Management” button.
- In the resulting menu, click on “➖ Reduce balance” button.
- Send the user entity object that belongs to the user you want to add the balance to. This can be telegram id or telegram username.
- Send the value by which you want to reduce the balance to the user.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the user management menu using the “👥 User Management” button.
- Open the refund menu using the “↩️ Make Refund” button.
- In the resulting menu, click on the buy button you want to refund.
- Confirm or cancel refund.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the statistics menu using the “📊 Analytics & Reports” button.
- In the resulting menu, click on the entity for which you want to get statistics.
- In the resulting menu, click on the time period for which you want statistics.
- Open the admin menu using the “🔑 Admin Menu” button.
- Open the statistics menu using the “📊 Analytics & Reports” button.
- Click "💾 Get database file" button.
Note All users with telegram id in the .env ADMIN_ID_LIST environment variable will receive these notifications
- If any user topped up the balance and clicked on the "Refresh balance" button, you will receive the following message from the bot:
After each purchase, you will receive a message in the format:
- Set all environment variables in docker-compose.yml and set the variable “true” for MULTIBOT.
MULTIBOT="true"
- Run the
docker-compose up
command. - After successful execution of the command, you will only deploy a manager bot for other bots, it will not have
functionality for buying items etc. To deploy a bot with functionality to sell goods etc..., you need to send the
command
/add $TOKEN
to the bot manager. If everything is successful, you will receive this notification.
- [x] Make migration from direct raw database queries to SQLAlchemy ORM.
- [x] Add option to encrypt database via SQLCipher (when using SQLAlchemy).
- [x] Add an option to generate new crypto addresses using new mnemonic phrases so that 1 user=1 mnemonic phrase.
- [x] Items pagination.
- [x] Make the functionality of database backup by action in the admin in the Telegram bot.
- [x] Make the functionality of generating statistics of sales and users in the bot for a month/week/day in the admin panel.
- [x] Make the functionality of generating statistics of deposits in the bot for a month/week in the admin panel.
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for AiogramShopBot
Similar Open Source Tools

AiogramShopBot
AiogramShopBot is a software product based on Aiogram3 and SQLAlchemy that allows you to automate sales of digital goods in Telegram. One of the bot's advantages is that AiogramShopBot implements the ability to top up with Bitcoin, Litecoin, Solana and stablecoins in the TRC20 and ERC20 networks, which allows you to sell digital goods worldwide. The bot provides features for user registration, balance top-up, purchase of goods, purchase history, admin functionalities like announcements, inventory management, user management, analytics & reports, and multibot functionality. It supports encryption via SQLCipher, multiple cryptocurrencies, and offers a user-friendly interface for managing sales and transactions.

quivr
Quivr is a personal assistant powered by Generative AI, designed to be a second brain for users. It offers fast and efficient access to data, ensuring security and compatibility with various file formats. Quivr is open source and free to use, allowing users to share their brains publicly or keep them private. The marketplace feature enables users to share and utilize brains created by others, boosting productivity. Quivr's offline mode provides anytime, anywhere access to data. Key features include speed, security, OS compatibility, file compatibility, open source nature, public/private sharing options, a marketplace, and offline mode.

aimeos-typo3
Aimeos is a professional, full-featured, and high-performance e-commerce extension for TYPO3. It can be installed in an existing TYPO3 website within 5 minutes and can be adapted, extended, overwritten, and customized to meet specific needs.

aiconfig
AIConfig is a framework that makes it easy to build generative AI applications for production. It manages generative AI prompts, models and model parameters as JSON-serializable configs that can be version controlled, evaluated, monitored and opened in a local editor for rapid prototyping. It allows you to store and iterate on generative AI behavior separately from your application code, offering a streamlined AI development workflow.

sd-webui-agent-scheduler
AgentScheduler is an Automatic/Vladmandic Stable Diffusion Web UI extension designed to enhance image generation workflows. It allows users to enqueue prompts, settings, and controlnets, manage queued tasks, prioritize, pause, resume, and delete tasks, view generation results, and more. The extension offers hidden features like queuing checkpoints, editing queued tasks, and custom checkpoint selection. Users can access the functionality through HTTP APIs and API callbacks. Troubleshooting steps are provided for common errors. The extension is compatible with latest versions of A1111 and Vladmandic. It is licensed under Apache License 2.0.

lexido
Lexido is an innovative assistant for the Linux command line, designed to boost your productivity and efficiency. Powered by Gemini Pro 1.0 and utilizing the free API, Lexido offers smart suggestions for commands based on your prompts and importantly your current environment. Whether you're installing software, managing files, or configuring system settings, Lexido streamlines the process, making it faster and more intuitive.

bedrock-claude-chat
This repository is a sample chatbot using the Anthropic company's LLM Claude, one of the foundational models provided by Amazon Bedrock for generative AI. It allows users to have basic conversations with the chatbot, personalize it with their own instructions and external knowledge, and analyze usage for each user/bot on the administrator dashboard. The chatbot supports various languages, including English, Japanese, Korean, Chinese, French, German, and Spanish. Deployment is straightforward and can be done via the command line or by using AWS CDK. The architecture is built on AWS managed services, eliminating the need for infrastructure management and ensuring scalability, reliability, and security.

OpenAI-sublime-text
The OpenAI Completion plugin for Sublime Text provides first-class code assistant support within the editor. It utilizes LLM models to manipulate code, engage in chat mode, and perform various tasks. The plugin supports OpenAI, llama.cpp, and ollama models, allowing users to customize their AI assistant experience. It offers separated chat histories and assistant settings for different projects, enabling context-specific interactions. Additionally, the plugin supports Markdown syntax with code language syntax highlighting, server-side streaming for faster response times, and proxy support for secure connections. Users can configure the plugin's settings to set their OpenAI API key, adjust assistant modes, and manage chat history. Overall, the OpenAI Completion plugin enhances the Sublime Text editor with powerful AI capabilities, streamlining coding workflows and fostering collaboration with AI assistants.

griptape
Griptape is a modular Python framework for building AI-powered applications that securely connect to your enterprise data and APIs. It offers developers the ability to maintain control and flexibility at every step. Griptape's core components include Structures (Agents, Pipelines, and Workflows), Tasks, Tools, Memory (Conversation Memory, Task Memory, and Meta Memory), Drivers (Prompt and Embedding Drivers, Vector Store Drivers, Image Generation Drivers, Image Query Drivers, SQL Drivers, Web Scraper Drivers, and Conversation Memory Drivers), Engines (Query Engines, Extraction Engines, Summary Engines, Image Generation Engines, and Image Query Engines), and additional components (Rulesets, Loaders, Artifacts, Chunkers, and Tokenizers). Griptape enables developers to create AI-powered applications with ease and efficiency.

arcade-ai
Arcade AI is a developer-focused tooling and API platform designed to enhance the capabilities of LLM applications and agents. It simplifies the process of connecting agentic applications with user data and services, allowing developers to concentrate on building their applications. The platform offers prebuilt toolkits for interacting with various services, supports multiple authentication providers, and provides access to different language models. Users can also create custom toolkits and evaluate their tools using Arcade AI. Contributions are welcome, and self-hosting is possible with the provided documentation.

botpress
Botpress is a platform for building next-generation chatbots and assistants powered by OpenAI. It provides a range of tools and integrations to help developers quickly and easily create and deploy chatbots for various use cases.

uAgents
uAgents is a Python library developed by Fetch.ai that allows for the creation of autonomous AI agents. These agents can perform various tasks on a schedule or take action on various events. uAgents are easy to create and manage, and they are connected to a fast-growing network of other uAgents. They are also secure, with cryptographically secured messages and wallets.

pgai
pgai simplifies the process of building search and Retrieval Augmented Generation (RAG) AI applications with PostgreSQL. It brings embedding and generation AI models closer to the database, allowing users to create embeddings, retrieve LLM chat completions, reason over data for classification, summarization, and data enrichment directly from within PostgreSQL in a SQL query. The tool requires an OpenAI API key and a PostgreSQL client to enable AI functionality in the database. Users can install pgai from source, run it in a pre-built Docker container, or enable it in a Timescale Cloud service. The tool provides functions to handle API keys using psql or Python, and offers various AI functionalities like tokenizing, detokenizing, embedding, chat completion, and content moderation.

giskard
Giskard is an open-source Python library that automatically detects performance, bias & security issues in AI applications. The library covers LLM-based applications such as RAG agents, all the way to traditional ML models for tabular data.

ChatGPT-desktop
ChatGPT Desktop Application is a multi-platform tool that provides a powerful AI wrapper for generating text. It offers features like text-to-speech, exporting chat history in various formats, automatic application upgrades, system tray hover window, support for slash commands, customization of global shortcuts, and pop-up search. The application is built using Tauri and aims to enhance user experience by simplifying text generation tasks. It is available for Mac, Windows, and Linux, and is designed for personal learning and research purposes.

obsidian-arcana
Arcana is a plugin for Obsidian that offers a collection of AI-powered tools inspired by famous historical figures to enhance creativity and productivity. It includes tools for conversation, text-to-speech transcription, speech-to-text replies, metadata markup, text generation, file moving, flashcard generation, auto tagging, and note naming. Users can interact with these tools using the command palette and sidebar views, with an OpenAI API key required for usage. The plugin aims to assist users in various note-taking and knowledge management tasks within the Obsidian vault environment.
For similar tasks

AiogramShopBot
AiogramShopBot is a software product based on Aiogram3 and SQLAlchemy that allows you to automate sales of digital goods in Telegram. One of the bot's advantages is that AiogramShopBot implements the ability to top up with Bitcoin, Litecoin, Solana and stablecoins in the TRC20 and ERC20 networks, which allows you to sell digital goods worldwide. The bot provides features for user registration, balance top-up, purchase of goods, purchase history, admin functionalities like announcements, inventory management, user management, analytics & reports, and multibot functionality. It supports encryption via SQLCipher, multiple cryptocurrencies, and offers a user-friendly interface for managing sales and transactions.

gitingest
GitIngest is a tool that allows users to turn any Git repository into a prompt-friendly text ingest for LLMs. It provides easy code context by generating a text digest from a git repository URL or directory. The tool offers smart formatting for optimized output format for LLM prompts and provides statistics about file and directory structure, size of the extract, and token count. GitIngest can be used as a CLI tool on Linux and as a Python package for code integration. The tool is built using Tailwind CSS for frontend, FastAPI for backend framework, tiktoken for token estimation, and apianalytics.dev for simple analytics. Users can self-host GitIngest by building the Docker image and running the container. Contributions to the project are welcome, and the tool aims to be beginner-friendly for first-time contributors with a simple Python and HTML codebase.

aimeos-core
Aimeos is an Open Source e-commerce framework for online shops consisting of the e-commerce library, the administration interface and different front-ends. It offers a modular stack that provides flexibility and speed. Unlike other shop systems, Aimeos allows users to choose from several user front-ends and customize them according to their needs or create their own. It is suitable for medium to large businesses requiring seamless integration into existing systems like content management, customer relationship management, or enterprise resource planning systems. Aimeos also serves as a base for portals or marketplaces.
For similar jobs

AiogramShopBot
AiogramShopBot is a software product based on Aiogram3 and SQLAlchemy that allows you to automate sales of digital goods in Telegram. One of the bot's advantages is that AiogramShopBot implements the ability to top up with Bitcoin, Litecoin, Solana and stablecoins in the TRC20 and ERC20 networks, which allows you to sell digital goods worldwide. The bot provides features for user registration, balance top-up, purchase of goods, purchase history, admin functionalities like announcements, inventory management, user management, analytics & reports, and multibot functionality. It supports encryption via SQLCipher, multiple cryptocurrencies, and offers a user-friendly interface for managing sales and transactions.

db2rest
DB2Rest is a modern low-code REST DATA API platform that simplifies the development of intelligent applications. It seamlessly integrates existing and new databases with language models (LMs/LLMs) and vector stores, enabling the rapid delivery of context-aware, reasoning applications without vendor lock-in.

tidb
TiDB is an open-source distributed SQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads. It is MySQL compatible and features horizontal scalability, strong consistency, and high availability.

infinity
Infinity is an AI-native database designed for LLM applications, providing incredibly fast full-text and vector search capabilities. It supports a wide range of data types, including vectors, full-text, and structured data, and offers a fused search feature that combines multiple embeddings and full text. Infinity is easy to use, with an intuitive Python API and a single-binary architecture that simplifies deployment. It achieves high performance, with 0.1 milliseconds query latency on million-scale vector datasets and up to 15K QPS.

postgresml
PostgresML is a powerful Postgres extension that seamlessly combines data storage and machine learning inference within your database. It enables running machine learning and AI operations directly within PostgreSQL, leveraging GPU acceleration for faster computations, integrating state-of-the-art large language models, providing built-in functions for text processing, enabling efficient similarity search, offering diverse ML algorithms, ensuring high performance, scalability, and security, supporting a wide range of NLP tasks, and seamlessly integrating with existing PostgreSQL tools and client libraries.

lancedb
LanceDB is an open-source database for vector-search built with persistent storage, which greatly simplifies retrieval, filtering, and management of embeddings. The key features of LanceDB include: Production-scale vector search with no servers to manage. Store, query, and filter vectors, metadata, and multi-modal data (text, images, videos, point clouds, and more). Support for vector similarity search, full-text search, and SQL. Native Python and Javascript/Typescript support. Zero-copy, automatic versioning, manage versions of your data without needing extra infrastructure. GPU support in building vector index(*). Ecosystem integrations with LangChain 🦜️🔗, LlamaIndex 🦙, Apache-Arrow, Pandas, Polars, DuckDB, and more on the way. LanceDB's core is written in Rust 🦀 and is built using Lance, an open-source columnar format designed for performant ML workloads.

Nucleoid
Nucleoid is a declarative (logic) runtime environment that manages both data and logic under the same runtime. It uses a declarative programming paradigm, which allows developers to focus on the business logic of the application, while the runtime manages the technical details. This allows for faster development and reduces the amount of code that needs to be written. Additionally, the sharding feature can help to distribute the load across multiple instances, which can further improve the performance of the system.

DB-GPT
DB-GPT is an open source AI native data app development framework with AWEL(Agentic Workflow Expression Language) and agents. It aims to build infrastructure in the field of large models, through the development of multiple technical capabilities such as multi-model management (SMMF), Text2SQL effect optimization, RAG framework and optimization, Multi-Agents framework collaboration, AWEL (agent workflow orchestration), etc. Which makes large model applications with data simpler and more convenient.