![PyPI Now Supports iOS and Android Wheels for Mobile Python Development](https://cdn.sanity.io/images/cgdhsj6q/production/96416c872705517a6a65ad9646ce3e7caef623a0-1024x1024.webp?w=400&fit=max&auto=format)
Security News
PyPI Now Supports iOS and Android Wheels for Mobile Python Development
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
A Python TLS client for auto-updating, customizable secure connections, ideal for advanced web scraping and reverse engineering. By TakionAPI
Takion TLS is a dynamic and customizable TLS client designed for quick sad easy integration into Python applications. It aims to address the common issues faced with existing open-source TLS clients that often lack ongoing maintenance and crucial features as well as helping our clients, in combo with our APIs, don't have to worry about antibots.
TLS (Transport Layer Security) is the successor to SSL (Secure Sockets Layer). It is a cryptographic protocol designed to provide secure communication over a computer network. TLS ensures that data transmitted between a web server and a client (such as a web browser or a scraping tool) is encrypted, which prevents eavesdropping and tampering.
Web scraping involves programmatically accessing web pages to extract data. Websites often use TLS to secure all communications between their servers and clients, which means that scraping tools must be able to handle TLS to access the content effectively. Proper handling of TLS in web scraping is crucial because:
In reverse engineering, researchers or developers analyze software or network communications to understand how they work. This often involves looking at the communications between clients and servers:
Takion TLS is a modern library built on top of the maintained and actively developed tls-client project.
It is designed to automatically update and configure the TLS client based on the operating system it runs on.
The library simplifies the integration of a TLS client into Python applications.
The creation of Takion TLS was motivated by the need for a Python-compatible TLS library that is not only easy to use but also robust and feature-rich.
Many existing libraries in the public domain suffer from lack of maintenance and do not support modern TLS features, which can hinder development and expose applications to security risks.
bogdanfinn/tls-client
and loads new clients identifiers..update_proxy()
method for session management.requests
history and allow_redirects
.Install Takion TLS using pip:
pip install takion-tls
For practical examples on how to use Takion TLS, please refer to the examples
directory in the project repository:
from takion_tls import Session
async def main():
session = Session("chrome_124")
# When the session is initialized for the first time in your environment,
# the lastest available compiled client will be downloaded and loaded.
response = await session.get("https://tls.peet.ws/api/all")
print(response.text)
from takion_tls import Session
async def main():
# In a situation like this, when a Session object is created, ther will be a check if the dependencies
# are downloaded and in case do it
Session("chrome_124")
# When creating a new session, the deoendencies library is going
# to be shared, so you'll not have to worry about
# downloading each time
Session("chrome_124")
from takion_tls import Session
async def main():
Session.library_path = "./test/"
# If you wanna change the default path where the compiled clients are stored,
# you can do it by changing the `library_path` attribute of the Session class.
session = Session("chrome_124")
response = await session.get("https://tls.peet.ws/api/all")
print(response.text)
from takion_tls import Session
async def main():
Session()
# You need to initialize at least once the session to download the latest compiled clients
# before beeing able to get the available client identifiers.
print(Session.clients.profiles)
'''
Output:
{
'chrome': [
'chrome_103', ..., 'chrome_120', 'chrome_124'
],
'safari': [
'safari_15_6_1', ... 'safari_ios_17_0'
],
'firefox': [
'firefox_102', ... 'firefox_120', 'firefox_123'
],
...
}
'''
# By default if not passed a client Identifier or custom configurations, the lastest Chrome client will be used.
# Some other available methods are as well
print(Session.clients.get_latest_chrome_version) # chrome_124
print(Session.clients.get_latest_safari_version) # safari_ios_17_0
print(Session.clients.get_latest_firefox_version) # firefox_123
from takion_tls import Session
async def main():
session = Session(
ja3_string="771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513,29-23-24,0",
h2_settings={
"HEADER_TABLE_SIZE": 65536,
"MAX_CONCURRENT_STREAMS": 1000,
"INITIAL_WINDOW_SIZE": 6291456,
"MAX_HEADER_LIST_SIZE": 262144
},
h2_settings_order=[
"HEADER_TABLE_SIZE",
"MAX_CONCURRENT_STREAMS",
"INITIAL_WINDOW_SIZE",
"MAX_HEADER_LIST_SIZE"
],
supported_signature_algorithms=[
"ECDSAWithP256AndSHA256",
"PSSWithSHA256",
"PKCS1WithSHA256",
"ECDSAWithP384AndSHA384",
"PSSWithSHA384",
"PKCS1WithSHA384",
"PSSWithSHA512",
"PKCS1WithSHA512",
],
supported_versions=["GREASE", "1.3", "1.2"],
key_share_curves=["GREASE", "X25519"],
cert_compression_algo="brotli",
pseudo_header_order=[
":method",
":authority",
":scheme",
":path"
],
connection_flow=15663105,
header_order=[
"accept",
"user-agent",
"accept-encoding",
"accept-language"
]
)
session = Session("chrome_124")
response = await session.get("https://tls.peet.ws/api/all")
print(response.text)
from takion_tls import Session
async def main():
session = Session("chrome_124")
session.update_proxy("123:456")
# Now the proxy uses 123:456 proxy
session.update_proxy("123:456:999:123")
# Now the proxy uses 123:456:999:123 proxy
session.update_proxy("http://user:password@host:port")
# Now the proxy uses http://user:password@host:port proxy
For optimal management and updates, it is recommended to set the library path to an external folder rather than the default site-packages/takion-tls
when compiling a project using Takion TLS rather than adding abinary during compilation.
from takion_tls import Session
# Initialize the library with a custom external path
Session.library_path = "./example"
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License. See the LICENSE file for more details.
Struggling with anti-bot measures and captchas in your web scraping or automation projects? TakionAPI offers a powerful solution to bypass these obstacles effortlessly. Our service uses advanced AI and algorithm-based approaches, eliminating the need for browser automation. We ensure you have a fast, 24/7 solution that's always up-to-date, supporting all operating systems and browsers.
Connect with us on Discord and start your free trial today!
FAQs
A Python TLS client for auto-updating, customizable secure connections, ideal for advanced web scraping and reverse engineering. By TakionAPI
We found that takion-tls demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.