
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
.. include-documentation-begin-marker
.. image:: https://github.com/zillow/ctds/workflows/CI/CD/badge.svg?branch=master :target: https://github.com/zillow/ctds/actions
.. image:: https://ci.appveyor.com/api/projects/status/voa33r7qdnxh6wwp/branch/master?svg=true :target: https://ci.appveyor.com/project/joshuahlang/ctds/branch/master
.. image:: http://img.shields.io/pypi/v/ctds.svg :target: https://pypi.python.org/pypi/ctds/
.. image:: https://codecov.io/gh/zillow/ctds/branch/master/graph/badge.svg :target: https://codecov.io/gh/zillow/ctds
cTDS
is a full Python DB API-2.0
_-compliant
SQL Server database library for Linux
, Windows
, and Mac OS X
supporting
both Python 2 and Python 3.
The full documentation for cTDS
can be found
here <https://zillow.github.io/ctds/>
_.
Microsoft SQL Server <http://www.microsoft.com/sqlserver/>
_ 2008 and up.DB API-2.0
_ support.FreeTDS
_Python
_.. _FreeTDS
: https://www.freetds.org/
.. _Python
: https://www.python.org/
.. _DB API-2.0
: https://www.python.org/dev/peps/pep-0249
.. include-documentation-end-marker
See installation instructions <https://zillow.github.io/ctds/install.html>
_
for more information on installing FreeTDS
_.
Publishing new versions of the egg and documentation is automated using a
Github Actions <https://docs.github.com/en/actions/>
_ workflow.
Official releases are marked using git
tags <https://git-scm.com/book/en/v2/Git-Basics-Tagging>
_. Pushing the
tag to the git remote will trigger the automated deployment. E.g.
.. code-block:: console
git tag -a v1.2.3 -m 'v1.2.3'
git push --tags
Generate documentation using the following:
.. code-block:: console
tox -e docs
# Generated to build/docs/
Documentation is hosted on GitHub Pages <https://pages.github.com/>
.
As such, the source code for the documentation pages must be committed
to the gh-pages <https://github.com/zillow/ctds/tree/gh-pages>
branch in
order to update the live documentation.
Local development and testing is supported on Linux-based systems running
tox
_ and Docker
. Docker containers are used for running a local instance
of SQL Server on Linux
. Only Docker
_ and tox
_ are required for running
tests locally on Linux or OS X systems. pyenv
_ is recommended for managing
multiple local versions of Python. By default all tests are run against
the system version of FreeTDS
. GNU Make
targets are provided to make
compiling specific FreeTDS
_ versions locally for testing purposes. For
example:
.. code-block:: console
# Run tests against FreeTDS version 1.1.24
make test-1.1.24
Development and testing will require an instance of SQL Server on Linux
_
running for validation. A script, ./scripts/ensure-sqlserver.sh, is provided
to start a Docker
_ container running the database and create the login used
by the tests.
.. code-block:: console
# Start a docker-based SQL Server instance.
# The default tox targets will do this automatically for you.
make start-sqlserver
# Run tests as needed ...
# Stop the docker-base SQL Server instance.
make stop-sqlserver
Testing is designed to be relatively seamless using Docker
_ containers
and SQL Server on Linux
. The pytest
framework is used for running
the automated tests.
To run the tests against the system version of FreeTDS
_ and Python
_,
use:
.. code-block:: console
tox
GNU make
_ targets are provided for convenience and to provide a standard
method for building and installing the various versions of FreeTDS
_ used
in testing. Most targets are wrappers around tox
_ or replicate some
behavior in the CI/CD automation.
To run the tests against an arbitrary version of FreeTDS
_:
.. code-block:: console
# Python X.Y & FreeTDS Z.ZZ.ZZ
make test_X.Y_Z.ZZ.ZZ
To run tests against all supported versions of FreeTDS
_ and Python
_
and additional linting and metadata checks:
.. code-block:: console
make check
valgrind
_ is utilized to ensure memory is managed properly and to detect
defects such as memory leaks, buffer overruns, etc. Because valgrind
_
requires Python is compiled with specific flags, a Docker
_ file is provided
to compile Python
_ as necessary to run the test suite under valgrind
_.
To run test test suite under valgrind
_:
.. code-block:: console
make valgrind
.. _Docker
: https://www.docker.com/
.. _compile Python
: https://pythonextensionpatterns.readthedocs.io/en/latest/debugging/valgrind.html
.. _SQL Server on Linux
: https://hub.docker.com/r/microsoft/mssql-server-linux/
.. _GNU make
: https://www.gnu.org/software/make/
.. _pyenv
: https://github.com/pyenv/pyenv
.. _pytest
: https://docs.pytest.org/en/stable/
.. _tox
: https://tox.readthedocs.io/en/latest/
.. _valgrind
: https://valgrind.org/
FAQs
DB API 2.0-compliant driver for SQL Server
We found that ctds demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers 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
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.