mirror of
				https://github.com/ManyakRus/starter.git
				synced 2025-10-31 00:17:54 +02:00 
			
		
		
		
	
			
				
					
						
					
					main
				
			
			
		
	Набор компонент для языка Golang Автор: Александр Никитин
Набор компонент для языка golang сделан для облегчения работы программиста, чтобы любой компонент можно было подключить одной строкой кода.
Компоненты для запуска любых микросерверов (ядро):
- log - компонент для логирования информации в консоль (логгер logrus)
- contextmain - контекст общий на всё приложение
- stopapp - ожидание завершения работы приложения Gracefull shutdown (CTRL+C), WaitGroup
- config - загрузка параметров из файла .env или из переменных окружения
Подключение к внешним сервисам:
- camunda_connect - подключение с сервису camunda
- chatgpt_connect - подключение к сервису ChatGPT OpenAI, искуственный интеллект
- fiber_connect - подключение веб сервера с компонентой fiber
- kafka_connect - подключение к брокеру сообщений kafka
- liveness - создание примитивного веб сервера для проверки работает или нет микросервис
- mssql_connect - подключение к серверу Microsoft SQL server с драйвером sqlx
- mssql_gorm - подключение к серверу Microsoft SQL server с драйвером gorm
- nats_connect - подключение к брокеру сообщений NATS
- postgres_connect - подключение с серверу баз данных Postgres, с драйвером sqlx
- postgres_gorm - подключение с серверу баз данных Postgres, с драйвером gorm
- postgres_pgx - подключение с серверу баз данных Postgres, с драйвером pgx
- whatsapp_connect - подключение к сервисам мессенджера whatsapp
Каждое подключение к внешним сервисам использует общий logger, contextmain, WaitGroup, config, и свою структуру Settings с параметрами
А также дополнительные библиотеки:
- micro - набор небольших полезных функций
- ping - функция для проверки работы порта на нужном хосте
Пример минимального ядра:
func main() {
	config.LoadEnv()
	stopapp.StartWaitStop()
	//ваш код
	stopapp.GetWaitGroup_Main().Wait()
}
Пример с разными подключениями:
func main() {
	config.LoadEnv()
	contextmain.GetContext()
	stopapp.StartWaitStop()
	mssql_gorm.StartDB()
	postgres_gorm.StartDB()
	nats.StartNats()
	camunda.StartCamunda()
	liveness.Start()
	stopapp.GetWaitGroup_Main().Wait()
	log.Info("App stopped")
}
					Languages
				
				
								
								
									Go
								
								99.7%
							
						
							
								
								
									Makefile
								
								0.2%