Why Filash
Trust. Trust. Trust. Trust.
Speed by AI
AI powered speed control
Filash's algorithms of the speed control, also known as congestion control in networking relm, have gone through thousands of AI coding iterations involving hundreds of algorithms from academic publications of the past 30 years, thousands of lines of open source congestion control code, and tens of thousands of parameter combinations. It has gone through tens of thousands simulations upon the AI generated parametric models of various network conditions.
The family of algorithms that the AI suggested is able to handle most civilian network conditions out of the box, while for some more delicate networks, an extra set of special algorithms & parameters can be tuned in for fair performance.
Regardless of distance
The AI suggested latency control algorithm enables files trasnfer at the highest potential bandwidth speed over long distance all over the planet, more than 150 milliseconds network latancy can be overcomed with little to no slow down comparing to 20 milliseconds delay. The AI simulated extreme distance is at one second delay.
On the contrary, traditional file transfer protocol/software slows down drastically along with the distance getting longer until it gets unusable when the latency is over a few hundred milliseconds.
Regardless of packet loss
The AI suggested packet loss control algorithm can overcome very high packet loss rate under delicate network conditions, and is still fairly usable under extreme network conditions like over 50% packet loss. The AI simulated extreme packet loss rate is at 80%.
Regardless of jitter - Wireless & Satellite
The jitter control algorithm in the family is specifically to handle wireless network environments such as WIFI, LTE and satellite which have more of unpredictable jitters that make it harder to probe the real bandwidth. Jitter means various intervals between packet arrives.
No human intervention - No target rate
The bandwidth probe algorithm in the family needs no human input whatsoever to probe and approach the maximum potential bandwidth speed as quickly as possible with as least self-introduced packet loss as possible.
Fair & Friendly
The fairness & friendliness control algorithm in the family makes sure each session gets a fair allocation of the whole highest potential bandwidth speed, and at the same time shows proactive friendly to TCP based traffics such as web browsing.
Arbitrary file set
The file set alignment algorithm in the family is responsible to align the various sized files in the transfer task to make sure the end-to-end transfer time is affected as least as possible. Specially for millions small files and large files mix use case, it makes sure the bottleneck lies only on the storage bandwidth other than the various file sizes.
Security by Design
TLS 1.3 AES-GCM
Eveything is encrypted end-to-end with TLS 1.3 AES-GCM 256 to make sure the unbeatable security of the data through out the entire transfer. Longer or untypical key lengths can be used for on demand custom build.
Certificates
Both client and server sides can have their own certificates to authenticate the Filash instances before the transfer request is made to make sure everyone is known.
Encrypted request
The transfer request is encrypted with a key that is obtained by X25519 key exchange between the client and the server to make sure the request is not solicited.
Each running instance of the server generates a new pair of private and public keys to make sure forward secrecy for the transfer requests.
Encrypted packets
All packets including the data and control packets are encrypted with a new key, other than the transfer request encryption key, obtained by X25519 key exchange to make sure forward secrecy for each session.
User authenticaton/authorization
All resources are protected by the user authentication as well as authorization to secure the data privacy from either outsiders or multi-tenant neighbours.
With JWT token, temporary access grant with expiration is a flexible way for visitors or public sharings.
Scalability by Design
Concurrent sessions
The server can be linearly configured to accept/initiate unlimited number of sessions concurrently. The more powerful the host machine is, the higher concurrency the Filash server can be.
Multi session
For each transfer, linearly unlimited number of child sessions can be run concurrently on a single server or across the whole cluster, each session transfers a sub set of files, and large files can also be configured to be split across sessions.
Multi file handler
For each session, unlimited number of file handlers such as file entry/attribute finders, file content readers and writers can be configured linearly to dramatically improve the performance of some extreme use cases such as millions of small files.
Clustering
Unlimited number of servers can be added/removed linearly at runtime to a cluster at anytime across data centers or availability zones whenever the workload is overwhelming/retreating. The cluster distributes the transfers by the rule that quicker responsive server picks up/accepts transfers quicker.
Servers of different roles can be add/removed, and roles can also be switched between each other to dynamically balance the various kinds of workload within a cluster.
Integration by Design
OS & Arch
Major OSs and architectures are supported for server, client and SDK if applicable, and custom build for additional OSs or architectures can be available on demand.
Single binary of Server, client, SDK
Server, client and SDK are all single binaries with no external dependencies, and can be run anywhere in the system or as a daemon.
Server roles
Multiple roles can be implemented by combining various of settings to focus on a particular or a set of particular tasks within the cluster to maximize the overall performance of the whole cluster.
Pylon - Server on client side
Pylon, server on client side, having all server's features but not listening the remote transfer requests, can be perfect integration for web or desktop applications to transfer, manage resources on the users' laptop as a daemon running in the background. For web application specifically, install once and forget can bring users seamless web App experience without noticing high performance file transfers running in the background.
Restful API & OpenAPI
Applications use the easy and powerful restful APIs to communicate with the server/cluster or pylon to schedule transfers, manage resources and etc. OpenAPI specification of the restful APIs is available for developers.
JSON everywhere
Not only restful APIs but also the command line arguments, License, configurations, logs are all using JSON format for interfaces, which makes it uniformly convenient for integration development.
JWT
JWT token has been widely used in the industry for many years and proved to be super efficient and secure. Filash server uses asymmetrically signed and verified JWT token with private/public key pairs for user authentication as well as authorization, making user authenitcation integration as easy and smooth as possible.
Two tier file management
Storage and share are the two kinds of resources to manage files on the server/pylon side. Both can have their own settings to throttle transfer performance or resource access with storage taking higher precedence. Storage resource holds the S3 storage credentials.
Four level configuration strucure
Four levels of configurations at license, global, storage, share take precedence in order with maximum caps at each level, making it super flexible for SaaS integrations.
Multi-level structured logging
Info, debug, error, trace levels in JSON format logging make it super easy for the devops to integrate for monitoring, trouble shooting, reporting and etc.
Cloud object storage
S3 compatible object storage is supported beside local storage, such as AWS S3, Wasabi, minio and etc.
Granular licensing
License can be issued with granular settings for various integration requirements to create more cost efficient partnerships.
Partnership development
We are a new generation of startup that dedicated to evolve our products and services along with the success of our customers and partners. We offer custom development service on demand if the current product features are not adequate for your need.