I am Duc Nguyen, a passionate open source contributor.
- 📫 Visit me at my Linked In - Duc Nguyen
With my co-contributors, I created core-go and core-ts, which cover these areas:
- Simplify common database operations, such as CRUD (Create, Read, Update, Delete) operations, batch processing and transactions (for SQL), by providing high-level abstractions and utilities.
- Generic CRUD Repository
- It is like CrudRepository of Spring, which promotes rapid development and consistency across applications.
- While it provides many advantages, such as reducing boilerplate code and ensuring transactional integrity, it also offers flexibility and control over complex queries.
- My batis for GOLANG, nodejs
- Support:
- SQL. The sample is at go-sql-generic-sample.
- Mongo. The sample is at go-mongo-generic-sample.
- Cassandra. The sample is at go-cassandra-sample.
- Firestore. The sample is at go-firestore-sample.
- Elastic Search. The sample is at go-elastic-search-generic-sample.
- Hive. The sample is at go-hive-sample.
- Dynamodb. The sample is at go-dynamodb-tutorial.
Visit core-go/io, you can see rich data processing:
- Import data from CSV or fix-length format files to SQL, Mongo, Cassandra, Firestore, Elastic Search, Hive
- Export data from SQL, Mongo, Cassandra, Firestore, Hive to CSV or fix-length format files
- Please visit core-go/mq.
- Because message queues are a crucial component in modern software architecture, we support most of message queues, such as Kafka, RabbitMQ, IBMMQ, Active MQ, NATS, Google Pub/Sub, Amazon SQS.
- Support 2 levels of 7 message queues:
- Standardize and simplify to use 7 message queues, for 9 libraries rabbitmq/amqp091-go, aws-sdk-go/service/sqs, go/pubsub, ibmmq, ActiveMQ, nats.go, segmentio/kafka-go, IBM/sarama and Confluent.
- Support standard level, which share the same interface with all message queues
- Abstract the consumer flow
- Support dead letter queue
- Support SDK or original library level, you can use all advance features of the SDK/libraries
Please visit core-go/health. We support databases, message queues, redis, http client:
- http client
- Redis: go-redis/redis to support redis/go-redis, garyburd/redigo to support gomodule/redigo.
- Database: sql, mongo, dynamodb, firestore, elasticsearch, cassandra, hive
- Message queues: Kafka, RabbitMQ, IBMMQ, Active MQ, NATS, Google Pub/Sub, Amazon SQS.
Standardize API for logging, support 2 libraries:
- middleware: Log request and response at http middleware, allow to configure dynamic field names
- client: Log request and response at http client, allow to configure dynamic field names
- Support for CRUD, search (not required in every application)
Refer to MemoryCacheService for more details
- Time To Live: automatically clean up the expired objects in the memory cache
- Maximum size: When the memory exceeds the max size (which is configurable), it automatically remove the oldest object.
The library is here Redis. Support 2 libraries:
Check required, email, url, min, max, country code, phone number, regular expression...
Samples are go-admin, go-backoffice and go-location
- Generate the model by URL
- Paging
- Sort
- SQL
- Mongo
- Dynamodb
- Firestore
- Elasticsearch
- Build some standard interfaces, which can be shared by multiple providers: SMTP and Sendgrid
- The sample is go-authentication
- storage
- Samples are at go-storage
Please visit Authentication, we support:
- Support to log in by user name/password
- Login by LDAP (both server side and client slide)
- Login by Google, Facebook, Linkedin, Microsoft, Amazon, Dropbox
- Support any database design (SQL, Mongo, Firestore, Cassandra)
Please visit security: Sample is go-admin
- Identity and Access Management: Authorization at middleware, support http (mux, chi), gin, echo
- Support any database design (SQL, Mongo, Firestore, Cassandra)
- Crypto
- JWT
- Libraries of core-go