{"id":31589364,"url":"https://github.com/simplify9/bitween-api","last_synced_at":"2025-10-06T02:50:07.872Z","repository":{"id":42014538,"uuid":"286104426","full_name":"simplify9/Bitween-api","owner":"simplify9","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-04T09:06:03.000Z","size":3253,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"releases/r8.0","last_synced_at":"2025-09-23T18:36:58.805Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simplify9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-08-08T19:11:21.000Z","updated_at":"2025-09-01T08:28:53.000Z","dependencies_parsed_at":"2024-05-28T14:22:25.181Z","dependency_job_id":"7877904b-bbb5-4538-a157-df595a8e8f51","html_url":"https://github.com/simplify9/Bitween-api","commit_stats":null,"previous_names":["simplify9/infolink","simplify9/bitween"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simplify9/Bitween-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify9%2FBitween-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify9%2FBitween-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify9%2FBitween-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify9%2FBitween-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplify9","download_url":"https://codeload.github.com/simplify9/Bitween-api/tar.gz/refs/heads/releases/r8.0","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify9%2FBitween-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278551495,"owners_count":26005388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-06T02:50:06.271Z","updated_at":"2025-10-06T02:50:07.859Z","avatar_url":"https://github.com/simplify9.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"icon.png\" alt=\"Bitween Logo\" width=\"120\" height=\"120\"\u003e\n  \u003ch1\u003eBitween\u003c/h1\u003e\n  \u003cp\u003e\u003cstrong\u003eOpen-Source Integration Middleware Platform\u003c/strong\u003e\u003c/p\u003e\n  \n  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n  [![.NET](https://img.shields.io/badge/.NET-8.0-blue.svg)](https://dotnet.microsoft.com/)\n  [![Docker](https://img.shields.io/badge/Docker-Supported-blue.svg)](https://www.docker.com/)\n  [![Kubernetes](https://img.shields.io/badge/Kubernetes-Ready-green.svg)](https://kubernetes.io/)\n\u003c/div\u003e\n\n---\n\n## 🚀 Overview\n\nBitween is a powerful, open-source integration middleware designed to simplify data exchange between different systems, regardless of protocols and data formats. Built with enterprise-grade scalability and customization in mind, Bitween acts as a central hub for all your integration needs.\n\n### Why Bitween?\n\n- **🔗 Protocol Agnostic**: Handle any data format (JSON, XML, EDI, etc.) and communication protocol\n- **🎯 Serverless Adapters**: Custom business logic through pluggable serverless components  \n- **📊 Real-time Processing**: Event-driven architecture for high-throughput message processing\n- **🔒 Enterprise Security**: JWT authentication, multi-tenant isolation, and access controls\n- **📈 Scalable**: Cloud-native design with Kubernetes support and horizontal scaling\n- **🔍 Observable**: Complete audit trails, monitoring, and processing visibility\n\n## 🏗️ Architecture\n\nBitween follows a hub-and-spoke architecture where messages flow through configurable processing pipelines:\n\n```\nExternal Systems → API Gateway → Processing Pipeline → Target Systems\n                                      ↓\n              Validation → Filtering → Mapping → Handling → Response\n```\n\n### Core Components\n\n- **Web API**: RESTful endpoints for message ingestion and management\n- **Processing Engine**: Asynchronous message processing with domain events\n- **Serverless Framework**: Custom adapter execution environment\n- **Multi-Database Support**: PostgreSQL, MySQL, SQL Server compatibility\n- **Cloud Storage**: File persistence with configurable storage backends\n\n## ⚡ Quick Start\n\n### Prerequisites\n\n- .NET 8.0 SDK\n- Docker (optional)\n- Database (PostgreSQL, MySQL, or SQL Server)\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/simplify9/bitween.git\ncd bitween\n```\n\n### 2. Run with Docker\n\n```bash\n# Build and run with Docker Compose\ndocker-compose up -d\n\n# Or build Docker image manually\ndocker build -t bitween .\ndocker run -p 8080:8080 bitween\n```\n\n### 3. Local Development Setup\n\n```bash\n# Restore dependencies\ndotnet restore\n\n# Update database connection in appsettings.json\n# Run database migrations\n./migratedb.sh\n\n# Start the application\ndotnet run --project SW.Bitween.Web\n```\n\nThe application will be available at `http://localhost:8080`\n\n## 🌐 Ecosystem \u0026 Companion Projects\n\nBitween is part of a comprehensive integration ecosystem with additional tools and components:\n\n### 🖥️ Bitween UI - Web Management Interface\nA modern React-based web interface for managing and monitoring your Bitween integration platform.\n\n- **Repository**: [BitweenUI](https://github.com/simplify9/BitweenUI)\n- **Features**: Dashboard, configuration management, monitoring, audit logs\n- **Technology**: React, TypeScript, Tailwind CSS, Redux Toolkit\n\n#### Quick Setup\n```bash\n# Clone the UI repository\ngit clone https://github.com/simplify9/BitweenUI.git\ncd BitweenUI\n\n# Install dependencies\nnpm install\n\n# Configure API endpoint (create .env file)\necho \"REACT_APP_API_URL=http://localhost:8080\" \u003e .env\n\n# Start development server\nnpm start\n```\n\nThe UI will be available at `http://localhost:3000`\n\n#### Production Deployment\n```bash\n# Build for production\nnpm run build\n\n# Deploy with Docker\ndocker build -t bitween-ui .\ndocker run -p 3000:80 bitween-ui\n```\n\n### 🔌 Bitween Adapters - Pre-built Integration Components\nA comprehensive collection of production-ready adapters for common integration scenarios.\n\n- **Repository**: [BitweenAdapters](https://github.com/simplify9/BitweenAdapters)\n- **License**: MIT (Open Source)\n- **Technology**: .NET 6+, Serverless-ready\n\n#### Available Adapters\n\n**Handlers** (Business Logic \u0026 Output):\n- **HTTP Handler**: REST API calls and webhooks\n- **SMTP Handler**: Email notifications and bulk sending\n- **FTP/SFTP Handler**: File uploads and transfers\n- **Azure Blob Handler**: Cloud storage operations\n- **S3 Handler**: AWS storage integration\n- **Microsoft Teams Handler**: Teams notifications\n- **SendGrid Handler**: Professional email delivery\n\n**Receivers** (Data Input Sources):\n- **FTP/SFTP Receiver**: Scheduled file polling\n- **HTTP Receiver**: Webhook endpoints and API polling\n- **POP3 Receiver**: Email processing\n- **Azure Blob Receiver**: Cloud storage monitoring\n- **S3 Receiver**: AWS storage file detection\n- **Elasticsearch Receiver**: Search and analytics data\n\n**Mappers** (Data Transformation):\n- **Liquid Mapper**: Template-based transformation\n- **JSON to Delimited Mapper**: Format conversion (CSV, TSV)\n\n#### Quick Start with Adapters\n```bash\n# Clone the adapters repository\ngit clone https://github.com/simplify9/BitweenAdapters.git\ncd BitweenAdapters\n\n# Build specific adapter (example: SFTP Handler)\ndotnet build SW.InfolinkAdapters.Handlers.Ftp/\n\n# Run adapter locally\ncd SW.InfolinkAdapters.Handlers.Ftp\ndotnet run\n\n# Deploy as Docker container\ndocker build -t bitween-sftp-handler .\ndocker run -p 7000:80 bitween-sftp-handler\n```\n\n\n\n### 🆚 Ecosystem Comparison\n\n| Component | Core Only | + UI | + Adapters | Complete Ecosystem |\n|-----------|-----------|------|------------|-------------------|\n| **Integration Platform** | ✅ | ✅ | ✅ | ✅ |\n| **REST API** | ✅ | ✅ | ✅ | ✅ |\n| **Web Dashboard** | ❌ | ✅ | ❌ | ✅ |\n| **Visual Configuration** | ❌ | ✅ | ❌ | ✅ |\n| **Pre-built Connectors** | ❌ | ❌ | ✅ | ✅ |\n| **Monitoring \u0026 Analytics** | ❌ | ✅ | ❌ | ✅ |\n| **User Management** | ❌ | ✅ | ❌ | ✅ |\n| **Time to Production** | Days | Hours | Hours | Minutes |\n| **Development Effort** | High | Medium | Low | Minimal |\n\n\u003e 💡 **Recommendation**: Use the complete ecosystem for the best developer experience and fastest time to production.\n\n## 📚 Documentation\n\n### 🌐 Ecosystem \u0026 Platform\n- [**Ecosystem Overview**](docs/ecosystem.md) - Complete platform ecosystem and companion projects\n- [**Architecture Overview**](docs/architecture.md) - System design and components\n- [**Domain Model**](docs/domain-model.md) - Core entities and relationships\n- [**Processing Pipeline**](docs/processing-pipeline.md) - Message flow and transformation\n\n### 🛠️ Development Guides\n- [**Quick Setup**](docs/quick-setup.md) - Get started in under 10 minutes\n- [**Getting Started**](docs/getting-started.md) - Development environment setup\n- [**API Reference**](docs/api-reference.md) - REST API documentation\n- [**Custom Adapters**](docs/custom-adapters.md) - Building serverless components\n- [**Configuration**](docs/configuration.md) - Application settings and options\n\n### 🚀 Deployment\n- [**Quick Setup**](docs/quick-setup.md) - Fast development setup\n- [**Production Deployment**](docs/production-deployment.md) - Complete ecosystem deployment\n- [**Docker Deployment**](docs/docker-deployment.md) - Container-based deployment\n- [**Kubernetes**](docs/kubernetes-deployment.md) - Orchestrated deployment\n- [**Database Setup**](docs/database-setup.md) - Multi-database configuration\n\n### 💡 Examples\n- [**Integration Patterns**](docs/integration-patterns.md) - Common usage scenarios\n- [**Sample Adapters**](docs/sample-adapters.md) - Reference implementations\n\n## 🔧 Key Features\n\n### Message Processing\n- **Document Types**: Define message schemas with promoted properties\n- **Subscriptions**: Configure processing rules and routing logic\n- **Filtering**: Route messages based on content and metadata\n- **Transformation**: Custom data mapping and format conversion\n\n### Integration Patterns\n- **Synchronous**: Request-response API calls\n- **Asynchronous**: Event-driven message processing\n- **Scheduled**: Time-based data retrieval and batch processing\n- **Aggregation**: Multi-message consolidation and reporting\n\n### Extensibility\n- **Custom Validators**: Input validation logic\n- **Custom Mappers**: Data transformation rules\n- **Custom Handlers**: Business processing logic\n- **Custom Receivers**: External data source integration\n\n## 🏢 Use Cases\n\n- **B2B Integration**: EDI processing and partner data exchange\n- **API Gateway**: Protocol translation and message routing\n- **Microservice Integration**: Event-driven service communication\n- **Data Synchronization**: Scheduled batch processing between systems\n- **Workflow Automation**: Process orchestration and business rule execution\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Submit a pull request\n\n### Areas for Contribution\n\n- 🐛 Bug fixes and improvements\n- 📚 Documentation enhancements\n- 🔌 New adapter implementations\n- 🧪 Test coverage expansion\n- 🌐 Localization support\n\n## 📞 Support \u0026 Community\n\n- **Documentation**: [Comprehensive guides and API reference](docs/)\n- **Issues**: [Report bugs and request features](https://github.com/simplify9/bitween/issues)\n- **Discussions**: [Community discussions and Q\u0026A](https://github.com/simplify9/bitween/discussions)\n- **Company**: [Simplify9](https://www.simplify9.com/)\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\nBuilt with ❤️ by [Simplify9](https://www.simplify9.com/) and the open-source community.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e⭐ Star this repository if you find Bitween useful!\u003c/p\u003e\n  \u003cp\u003eMade with ❤️ for the integration community\u003c/p\u003e\n\u003c/div\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplify9%2Fbitween-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplify9%2Fbitween-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplify9%2Fbitween-api/lists"}